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

.NET 5 集成Azure B2C实现登出时陷入无限循环问题求助

问题根因

你配置了全局授权过滤器要求所有请求必须经过身份认证,Azure B2C完成登出后回调的SignedOutCallbackPath属于未认证请求,会被过滤器拦截重定向到登录页面,由此触发无限重定向循环。

修复步骤

  • 第一步:调整全局授权规则,放开MicrosoftIdentity相关路径的匿名访问权限
    你当前给所有控制器全局注入了RequireAuthenticatedUser的授权策略,可直接移除原有全局添加AuthorizeFilter的逻辑,改为给需要登录校验的业务控制器单独添加[Authorize]注解即可,修改Startup中的配置:
    services.AddControllersWithViews()
    // 移除原有全局添加AuthorizeFilter的逻辑
    .AddMicrosoftIdentityUI();
    
    如果希望保留全局授权规则,也可以单独给MicrosoftIdentity区域放开权限:
    services.AddControllersWithViews(options=>
    {
        var policy = new AuthorizationPolicyBuilder()
            .RequireAuthenticatedUser()
            .Build();
        options.Filters.Add(new AuthorizeFilter(policy));
    }).AddMicrosoftIdentityUI()
    .AddRazorPagesOptions(options =>
    {
        // 允许MicrosoftIdentity区域所有页面匿名访问
        options.Conventions.AllowAnonymousToAreaFolder("MicrosoftIdentity", "/");
    });
    
  • 第二步:检查Azure B2C应用注册的登出地址配置
    登录Azure Portal进入你的B2C应用注册页,在「身份验证」菜单的「登出URL」配置项中,添加你业务域名加SignedOutCallbackPath的完整地址,比如https://你的应用域名/signout/B2C_1_Normal,确保和你appsettings中的配置完全一致。
  • 第三步:可选校验配置项
    确认你的SignUpSignInPolicyId拼写完全正确,大小写和B2C后台的用户流名称保持一致,避免因为策略匹配错误导致重定向逻辑异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 17:06:04