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

