在 Blazor 服务器端应用程序中注销后如何重定向到主页
How to redirect to home page after sign out in a Blazor serverside application
我的 Blazor 服务器端应用程序使用 Azure B2C 进行了身份验证。注销后,用户将被重定向到一个通知注销成功的通用页面。如何让应用程序重定向到主页(即登录页面)?
这是我的身份验证的一部分:
<AuthorizeView>
<Authorized>
@if (canEditProfile)
{
<a href="MicrosoftIdentity/Account/EditProfile" style="color: white">Hello, @context.User.Identity.Name!</a>
}
else
{
<span style="color: white">Hello, @context.User.Identity.Name!</span>
}
<a href="MicrosoftIdentity/Account/SignOut" style="color: white">Log out</a>
</Authorized>
<NotAuthorized>
<a href="MicrosoftIdentity/Account/SignIn" style="color: white">Log in</a>
</NotAuthorized>
</AuthorizeView>
在注销请求中,发送一个post_logout_redirect_uri
post_logout_redirect_uri: 用户在成功注销后应该被重定向到的URL。如果未包含,Azure AD B2C 会向用户显示一条通用消息。除非您提供 id_token_hint,否则您不应在 Azure AD B2C 应用程序设置中将此 URL 注册为回复 URL。
https://docs.microsoft.com/en-us/azure/active-directory-b2c/openid-connect#send-a-sign-out-request
services.Configure<OpenIdConnectOptions> (OpenIdConnectDefaults.AuthenticationScheme, options =>
{
options.Events.OnSignedOutCallbackRedirect = async context =>
{
context.HttpContext.Response.Redirect(context.Options.SignedOutRedirectUri);
context.HandleResponse();
};
});
这是基于旧问题 here。
我的 Blazor 服务器端应用程序使用 Azure B2C 进行了身份验证。注销后,用户将被重定向到一个通知注销成功的通用页面。如何让应用程序重定向到主页(即登录页面)?
这是我的身份验证的一部分:
<AuthorizeView>
<Authorized>
@if (canEditProfile)
{
<a href="MicrosoftIdentity/Account/EditProfile" style="color: white">Hello, @context.User.Identity.Name!</a>
}
else
{
<span style="color: white">Hello, @context.User.Identity.Name!</span>
}
<a href="MicrosoftIdentity/Account/SignOut" style="color: white">Log out</a>
</Authorized>
<NotAuthorized>
<a href="MicrosoftIdentity/Account/SignIn" style="color: white">Log in</a>
</NotAuthorized>
</AuthorizeView>
在注销请求中,发送一个post_logout_redirect_uri
post_logout_redirect_uri: 用户在成功注销后应该被重定向到的URL。如果未包含,Azure AD B2C 会向用户显示一条通用消息。除非您提供 id_token_hint,否则您不应在 Azure AD B2C 应用程序设置中将此 URL 注册为回复 URL。
https://docs.microsoft.com/en-us/azure/active-directory-b2c/openid-connect#send-a-sign-out-request
services.Configure<OpenIdConnectOptions> (OpenIdConnectDefaults.AuthenticationScheme, options =>
{
options.Events.OnSignedOutCallbackRedirect = async context =>
{
context.HttpContext.Response.Redirect(context.Options.SignedOutRedirectUri);
context.HandleResponse();
};
});
这是基于旧问题 here。