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

使用B2C身份提供商时HttpContext.User.Identity始终返回null

问题描述

使用B2C ID Provider时,应用认证功能正常,但尝试获取已登录用户信息时,HttpContext.User.Identity始终返回null。已调整AnonymousAccess相关设置,问题仍未解决。

相关截图:

  • 配置截图:配置截图
  • launchSettings截图:launchSettings截图
  • 问题截图:问题截图
排查与解决建议
  • 确认认证中间件顺序:在Program.cs中,确保app.UseAuthentication()在app.UseAuthorization()之前执行,且两者都在路由中间件之前。顺序错误会导致身份信息无法正确加载。
  • 检查ClaimsPrincipal填充情况:在认证回调或授权过滤器中,输出HttpContext.User的完整内容,确认是否有Claims被加载。若Claims存在但Identity为null,需检查身份类型是否正确设置。
  • 验证B2C令牌配置:确保AddMicrosoftIdentityWebApp的配置参数(Domain、ClientId、TenantId、SignUpSignInPolicyId)准确无误,且令牌包含sub或nameidentifier等核心用户声明。
  • 检查Cookie认证配置:若用Cookie存储身份信息,确认CookieAuthenticationOptions的SlidingExpiration、ExpireTimeSpan等设置合理,未禁用身份持久化。
  • 注意请求时机:避免在控制器构造函数或中间件早期阶段访问HttpContext.User——此时认证中间件可能还未完成身份处理,建议在Action方法内访问。
  • 查看详细日志:在appsettings.json中设置Logging.LogLevel.Microsoft.AspNetCore.Authentication为Debug,通过日志排查认证过程中的错误或警告。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 01:13:12