3

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")]

そのコントローラ アクションに移動しようとすると、ログイン ページが表示されます。正常にログインできましたが、コントローラ アクション メソッドのビューを表示する代わりに、ログイン ページに再度リダイレクトされます。

メールとページ上部の「ログオフ」ボタン (部分ビューのレイアウト) が表示されているので、ログインに成功したことがわかります。私は認証されているようですが、許可されていないようです。確かに、禁止されたページを見るべきだったのに、ログイン ページしか表示されません。

ここで何か不足していますか?ログインした後でもログインページにリダイレクトされるのはなぜですか?

.

4

0 に答える 0