Mit IdentityServer3 Ich muss einen lokalen Benutzer automatisch anmelden und umleiten, zurück zu der Client-Anwendung, nachdem der Benutzer einen Registrierungsprozess abgeschlossen hat. Gibt es eine elegante Möglichkeit, dies zu tun? Von meinem Graben vermute ich nicht, in welchem Fall gibt es einen Hack, den ich verwenden kann, um dies zu erreichen?Automatischer Login lokaler Benutzer nach der Registrierung mit IdentityServer3
Ich konnte dies für externe Benutzer mit einem benutzerdefinierten User Service erreichen, aber dies nutzte eine teilweise Anmeldung. Bei lokalen Benutzern wird der Authentifizierungsprozess jedoch erst vom Benutzerdienst ausgeführt, wenn er sich mit einem Benutzernamen und einem Kennwort anmeldet.
Bitte beachten Sie auch, dass ich nicht auf das Benutzerpasswort zugreifen kann, da der Registrierungsprozess durch mehrere Bildschirme/Ansichten abgedeckt wird, da sie in diesem Fall ihre E-Mail als Teil des Registrierungsprozesses verifizieren müssen.
Fortschritt:
ich diese https://github.com/IdentityServer/IdentityServer3/issues/563 gefunden habe, aber noch nicht ausgearbeitet, wie die Umleitung auszulösen.
Ich bin versucht, ein Authentifizierungstoken zur Ausgabe mit:
var localAuthResult = userService.AuthenticateLocalAsync(user);
Request.GetOwinContext().Authentication.SignIn(new ClaimsIdentity(localAuthResult.Result.User.Claims, Thinktecture.IdentityServer.Core.Constants.PrimaryAuthenticationType));
Aber das Beste, was ich bisher tun kann, ist den Benutzer zurück zum Login-Bildschirm umleiten:
HttpCookie cookie = Request.Cookies["signin"]; // Stored previously at beginning of registration process
return Redirect("~/core/login?signin=" + cookie.Value);
Dank Gavin! Nur so können wir unseren Nutzern über die Anmeldeseite einen Registrierungslink über unsere Website anbieten. – Tim
@Tim - Ich bin sicher, dass es auch andere Wege gibt, experimentierte mich aber nicht. – Gavin
@Gavin haben Sie sonst bitte teilen – Moes