私は晴れやかな広告から私のwebappをサインアウトするのが好きです。私はこのサンプルhttps://www.janaks.com.np/azure-ad-identity-provider-in-aspnet-core-application/で示唆したように次のように試しました。Azure AD Sign Out
Startup.csで、次のような構成によりif (HttpContext.User.Identity.IsAuthenticated)
{
await HttpContext.Authentication.SignOutAsync(OpenIdConnectDefaults.AuthenticationScheme);
await HttpContext.Authentication.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme);
}
:
app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions
{
AuthenticationScheme = settings.SignInPolicyId,
AutomaticChallenge = true,
CallbackPath = settings.SignInCallbackPath,
ClientId = settings.ClientId,
MetadataAddress = string.Format(settings.AadInstance, settings.Tenant, settings.SignInPolicyId),
PostLogoutRedirectUri = settings.RedirectUri,
TokenValidationParameters = new TokenValidationParameters
{
NameClaimType = "name"
},
AutomaticAuthenticate = true,
Scope = { "openid" },
ResponseType = "id_token",
GetClaimsFromUserInfoEndpoint = true
});
しかし、私は例外以下のWebアプリケーションからサインアウトしようとするとスローされます:あなたの助けを
InvalidOperationException: No authentication handler is configured to handle the scheme: OpenIdConnect
感謝を。あなたが何らかの形でこのコントローラにポリシーIDを取得し、適切なミドルウェアを識別するためにそれを使用する必要があります
if (HttpContext.User.Identity.IsAuthenticated)
{
await HttpContext.Authentication.SignOutAsync(settings.SignInPolicyId);
await HttpContext.Authentication.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme);
}
: