ASP.NET Core Web アプリケーションがあり、いくつかのコントローラー アクション メソッドを Authorize 属性で装飾しています。
そのため、ログインしていない場合、リダイレクトは行われず、そのコントローラー アクションの空白ページのみが表示されます。私はいくつかのチュートリアルを経験しましたが、それらは Cookie 認証について話しています。
そこで、Startup.cs に変更を加え、以下を追加しました。
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationScheme = "Cookie",
LoginPath = new PathString("/Account/Login/"),
AccessDeniedPath = new PathString("/Account/Forbidden/"),
AutomaticAuthenticate = true,
AutomaticChallenge = true
});
また、Authorize 属性を変更して、ActiveAuthenticationScheme を次のように含めました。
[Authorize(ActiveAuthenticationSchemes = "Cookie")]
そのコントローラ アクションに移動しようとすると、ログイン ページが表示されます。正常にログインできましたが、コントローラ アクション メソッドのビューを表示する代わりに、ログイン ページに再度リダイレクトされます。
メールとページ上部の「ログオフ」ボタン (部分ビューのレイアウト) が表示されているので、ログインに成功したことがわかります。私は認証されているようですが、許可されていないようです。確かに、禁止されたページを見るべきだったのに、ログイン ページしか表示されません。
ここで何か不足していますか?ログインした後でもログインページにリダイレクトされるのはなぜですか?
.