9

IdentityServer3を使用して、ユーザーが登録プロセスを完了した後、自動的にログインしてローカル ユーザーをクライアント アプリケーションにリダイレクトする必要があります。これを行うエレガントな方法はありますか?私の掘り下げから、そうではないと思われますが、これを達成するために使用できるハックはありますか?

カスタムUser Serviceを使用して外部ユーザーに対してこれを実現できましたが、これは部分的なログインを利用していました。ただし、ローカル ユーザーの場合、ユーザー名とパスワードでログインするまで、ユーザー サービスによって処理される認証プロセスには参加しません。

また、登録プロセスは複数の画面/ビューでカバーされているため、ユーザーのパスワードにアクセスできないことにも注意してください。この場合、登録プロセスの一部として電子メールを確認する必要があります。

進捗:

このhttps://github.com/IdentityServer/IdentityServer3/issues/563を見つけましたが、リダイレクトをトリガーする方法がわかりませんでした。

以下を使用して認証トークンを発行しようとしています。

var localAuthResult = userService.AuthenticateLocalAsync(user);
Request.GetOwinContext().Authentication.SignIn(new ClaimsIdentity(localAuthResult.Result.User.Claims, Thinktecture.IdentityServer.Core.Constants.PrimaryAuthenticationType));

しかし、これまでにできる最善の方法は、ユーザーをログイン画面にリダイレクトすることです。

HttpCookie cookie = Request.Cookies["signin"]; // Stored previously at beginning of registration process
return Redirect("~/core/login?signin=" + cookie.Value);
4

1 に答える 1