You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Azure B2C验证的Blazor服务端应用登出后如何重定向至首页?

实现Blazor服务端+Azure B2C登出后直接跳转首页的方案

方案1:修改前端登出链接(最快生效)

直接修改你现有代码里的登出跳转地址,拼接重定向参数即可,修改后的代码如下:

<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>
    }
    <!-- 仅修改这一行的href,增加重定向参数 -->
    <a href="MicrosoftIdentity/Account/SignOut?post_logout_redirect_uri=/" style="color: white">Log out</a>
</Authorized>
<NotAuthorized>
    <a href="MicrosoftIdentity/Account/SignIn" style="color: white">Log in</a>
</NotAuthorized>
</AuthorizeView>

如果你的首页/登录页不是根路径,把参数值/换成对应路径即可,比如/login。

方案2:全局配置默认登出跳转规则(一劳永逸)

如果你希望所有登出场景默认都跳首页,不需要每个登出链接都拼参数,可以在程序启动配置里加拦截规则:
找到你项目的Program.cs(.NET 6及以上版本)或者Startup.cs(.NET 5及以下版本)中的身份验证配置段,添加如下代码:

// 原有Azure B2C身份验证配置保留,新增下面这段配置
builder.Services.Configure<OpenIdConnectOptions>(OpenIdConnectDefaults.AuthenticationScheme, options =>
{
    options.Events.OnSignedOutCallbackRedirect = context =>
    {
        // 这里的"/"就是跳转的目标首页地址,需要的话自行替换
        context.Response.Redirect("/");
        context.HandleResponse();
        return Task.CompletedTask;
    };
});

必须校验的Azure B2C配置

你需要登录Azure门户进入对应B2C租户的应用注册页,在「身份验证」板块的登出重定向URI列表里,确认你要跳转的首页地址已经被添加进去,否则B2C会出于安全规则拒绝跳转请求,仍然会跳到默认登出成功页。


内容的提问来源于stack exchange,提问作者David Shochet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 09:06:04