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

使用Azure AD B2C认证的.NET 5应用如何成功实现登出

关于登出后B2C会话仍有效问题的代码验证

你提供的代码片段不属于调整B2C会话行为的配置,无法解决用户登出后会话仍然有效无需重新认证的问题。

你贴出的代码作用非常明确,仅负责登出完成后的页面跳转:

app.UseRewriter(
    new RewriteOptions().Add(
        context =>
        {
            if (context.HttpContext.Request.Path == "/MicrosoftIdentity/Account/SignedOut")
            { context.HttpContext.Response.Redirect("/Home/Index"); }
        }
    )
);

这段重写规则只会在用户完成登出流程、访问默认的登出完成页路径时,将页面重定向到站点首页,全程没有操作会话状态、也没有和B2C身份服务做会话同步的逻辑,和你遇到的会话残留问题完全无关。

要解决你遇到的登出后会话仍然生效的问题,需要调整的核心配置方向如下:

  • 确认登出逻辑是调用B2C服务端的全局登出端点,而不是只删除了应用本地的Cookie,没有通知B2C销毁身份提供商侧的会话,导致下次登录时B2C侧仍然判定用户处于已登录状态
  • 检查ASP.NET Core的AddMicrosoftIdentityWebApp配置项,确认正确配置了SignedOutCallbackPath,且开启了登出时自动清除本地认证Cookie的逻辑
  • 如果你的应用开启了令牌缓存功能,需要确认登出时同步清除了缓存的访问令牌、刷新令牌,避免后续请求直接复用缓存的有效令牌

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 13:45:03