【问题标题】:How to redirect to home page after sign out in a Blazor serverside application在 Blazor 服务器端应用程序中注销后如何重定向到主页
【发布时间】:2023-03-12 18:28:01
【问题描述】:

我的 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>

【问题讨论】:

  • 您在使用 MSAL 吗?
  • @JuanmaFeliu 是的,我愿意。

标签: azure-ad-b2c blazor-server-side


【解决方案1】:

在注销请求中,发送post_logout_redirect_uri

post_logout_redirect_uri用户成功退出后应重定向到的 URL。如果不包括在内,Azure AD B2C 会向用户显示一条通用消息。除非您提供 id_token_hint,否则不应将此 URL 注册为 Azure AD B2C 应用程序设置中的回复 URL。

https://docs.microsoft.com/en-us/azure/active-directory-b2c/openid-connect#send-a-sign-out-request

【讨论】:

  • 感谢您的回答。你能给我一个小样本吗?我找不到在哪里/如何设置这个 post_logout_redirect_uri 指向主页。
  • GET https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/logout?post_logout_redirect_uri=https%3A%2F%2Fjwt .ms%2F
  • @JuanmaFeliu 谢谢,但我不明白如何在我的 Blazor 服务器端应用程序中应用它。这个应该放在哪里?
  • 不,ASP .Net core wasm。
【解决方案2】:
services.Configure<OpenIdConnectOptions> (OpenIdConnectDefaults.AuthenticationScheme, options =>
            {
                options.Events.OnSignedOutCallbackRedirect = async context =>
                {
                    context.HttpContext.Response.Redirect(context.Options.SignedOutRedirectUri);
                    context.HandleResponse();
                };

            });

这是基于一个老问题here

【讨论】:

    猜你喜欢
    • 2015-08-09
    • 2023-03-25
    • 1970-01-01
    • 2021-10-18
    • 2017-08-22
    • 2019-07-02
    • 1970-01-01
    • 1970-01-01
    • 2020-12-29
    相关资源
    最近更新 更多