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

ASP.NET网站集成Azure B2C异常:点击登录未跳转认证页面

问题分析与排查建议

问题描述

ASP.NET网站集成Azure B2C后,点击登录按钮页面加载后直接重定向回初始页面,未跳转至Azure B2C认证页;此前功能正常,近期出现异常。Azure端用户流配置正常,且在.NET MAUI应用中可正常完成认证,调试/控制台/热重载标签页无错误日志。

使用的NuGet包

<ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="7.0.2" NoWarn="NU1605" />
    <PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="7.0.2" NoWarn="NU1605" />
    <PackageReference Include="Microsoft.Identity.Web" Version="1.26.0" />
    <PackageReference Include="Microsoft.Identity.Web.UI" Version="1.26.0" />
  </ItemGroup>

appsettings.json配置

{
  "AzureAdB2C": {
    "Instance": "https://****.b2clogin.com/",
    "Domain": "****.onmicrosoft.com",
    "TenantId": "cb6**************685",
    "ClientId": "592******d1a",
    "CallbackPath": "/home",
    "SignUpSignInPolicyId": "B2C_1_signupsignin",
    "SignedOutCallbackPath": "/signout/B2C_1_susi",
    "ResetPasswordPolicyId": "bB2C_1_passwordreset",
    "EditProfilePolicyId": "B2C_1_edit_profile",
    "EnablePiiLogging": true
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*"
}

排查步骤

1. 检查认证中间件配置

确认Program.cs(或Startup.cs)中认证中间件配置是否正确:

  • 是否调用AddMicrosoftIdentityWebAppAuthentication并指定B2C配置节点
  • 是否添加AddAuthorization(),且UseAuthentication()、UseAuthorization()中间件顺序正确(UseAuthentication需在UseAuthorization之前,且均在UseRouting之后)
  • 登录按钮跳转逻辑是否指向正确的认证端点(如/MicrosoftIdentity/Account/SignIn)

2. 修正CallbackPath配置

当前CallbackPath设为/home存在风险:

  • CallbackPath应为Azure B2C回调应用的专用路径,默认是/signin-oidc。若自定义路径,需确保:
    • 该路径未被其他路由或中间件拦截
    • Azure B2C应用注册的回复URL已添加对应路径(如https://your-app-domain/home)
  • 建议先改回默认的/signin-oidc测试是否恢复正常

3. 排查NuGet包版本兼容性

当前Microsoft.Identity.Web 1.26.0与ASP.NET Core 7.0.2可能存在版本匹配问题:

  • 尝试将Microsoft.Identity.Web和Microsoft.Identity.Web.UI更新至兼容ASP.NET Core 7的最新版本(如2.x系列)
  • 检查是否因包更新导致认证逻辑变更

4. 启用详细认证日志

当前日志级别无法捕获认证流程细节,修改Logging配置:

"Logging": {
  "LogLevel": {
    "Default": "Information",
    "Microsoft.AspNetCore": "Warning",
    "Microsoft.AspNetCore.Authentication": "Debug"
  }
}

重新运行应用,查看控制台或日志文件中的认证流程日志,定位重定向原因。

5. 清除浏览器缓存与Cookie

  • 清除浏览器中与Azure B2C、当前应用相关的Cookie和缓存,避免旧会话干扰
  • 使用隐私模式打开浏览器测试,排除缓存问题

6. 检查Azure B2C应用注册配置

  • 确认应用注册的客户端密码未过期或被重置,若近期更新过密码需同步至appsettings
  • 确认用户流B2C_1_signupsignin未被修改或禁用
  • 检查应用注册的重定向URI是否与当前应用域名匹配(如本地测试用https://localhost:xxxx/home,生产环境用实际域名)

7. 检查路由与授权策略

  • 确认初始页面是否允许匿名访问,若初始页面需授权可能导致重定向循环
  • 排查是否有自定义授权中间件或过滤器干扰认证流程

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 18:05:29