使用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
相关产品推荐
相关产品推荐

