【问题标题】:Always getting null value in User Details from Azure AD after authentication .NET Core (3.0) Web API身份验证 .NET Core (3.0) Web API 后,始终从 Azure AD 获取用户详细信息中的空值
【发布时间】:2020-06-26 09:45:53
【问题描述】:

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

这是我尝试过的

        var cu = _httpContextAccessor.HttpContext.User;

        string username = User.FindFirstValue(ClaimTypes.Name);

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

如何获得这些详细信息。

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

【问题讨论】:

    标签: c# azure .net-core azure-active-directory asp.net-core-webapi


    【解决方案1】:

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

    将以下行添加到您的 ConfigureServices 方法中,以使用 JWT 令牌声明名称构建声明集合。

    JwtSecurityTokenHandler.DefaultMapInboundClaims = false;
    

    【讨论】:

      猜你喜欢
      • 2020-03-09
      • 2021-06-26
      • 2020-09-24
      • 1970-01-01
      • 1970-01-01
      • 2011-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多