2つのカスタムASP.NETCoreミドルウェアがあります。1つは認証用(独自の認証スキームを登録する)で、もう1つはビジネス作業用です。
認証ミドルウェアを別のミドルウェアで使用するにはどうすればよいですか?次のようなMVCで認証を簡単に使用できます。
services.AddMvc(config =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
config.Filters.Add(new AuthorizeFilter(policy));
});
AuthenticationSchemeProvider
要求されたURLに基づいてさまざまな認証スキームを使用するために独自のものを提供することもできます。ただし、認証ミドルウェアはMVCコントローラーに対してのみ実行されます。カスタムミドルウェアが実行される前にも実行したい。それは可能ですか?
ユーザーが認証されていない場合のカスタムミドルウェアメソッドInvoke()
呼び出しChallengeAsync()
:
public async Task Invoke(HttpContext httpContext, IServiceProvider serviceProvider)
{
if (!httpContext.User.Identity.IsAuthenticated)
{
await httpContext.ChallengeAsync();
}
else { /* logic here */ }
}
NuGetパッケージMicrosoft.AspNetCore.Authentication.Abstractions
を追加する必要があります。
上記のコードは、デフォルトの認証サービスを実行してユーザーを認証します。デフォルトのものがカスタム認証ミドルウェアの場合、それが呼び出されます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加