身份验证后,始终从 Azure AD 获取 null 值 .NET Core (3.0) Web API



我正在使用.NET Core 3.0 Web API并使用Azure AD身份验证。 所以我正在尝试从声明对象获取活动登录用户的用户名和电子邮件。

这是我尝试过的

var cu = _httpContextAccessor.HttpContext.User;
string username = User.FindFirstValue(ClaimTypes.Name);

执行时用户名为空。当我们改变 ClaimTypes.Email 时也是如此。

我怎样才能获得这些详细信息。

但是在User.Identity.Claims中调试时,我可以看到该值。但我无法从那里提取。

>ClaimTypes.Name 值遵循旧的SAML兼容格式http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name而JWT令牌使用较短的版本,如name

将以下行添加到ConfigureServices方法,以使用 JWT 令牌声明名称生成声明集合。

JwtSecurityTokenHandler.DefaultMapInboundClaims = false;

相关内容

  • 没有找到相关文章

最新更新