如何从jwt令牌获取用户ID?

问题描述 投票:0回答:1

Net核心应用程序。通过招摇我正在对我的Web API应用程序进行身份验证。我正在从招摇的每个请求中发送JWT令牌。该jwt令牌包含Azure用户objectid。我想找回它。我尝试如下。

userId = _httpContextAccessor.HttpContext.User.Claims.First(i => i.Type == ClaimTypes.NameIdentifier).Value;

这没有给我正确的对象标识符。我可以在令牌中看到对象标识符,如下所示。

jwt token

在下面的图像中有对象标识符,但是我无法检索它。有人可以帮我吗?任何帮助,将不胜感激。谢谢

c# asp.net-core jwt azure-active-directory httpcontext
1个回答
0
投票

如果知道要查找的索赔名称,则可以使用它代替ClaimTypes类中定义的名称。

userId = _httpContextAccessor.HttpContext.User.Claims.First(i => i.Type == "CLAIM_NAME").Value;

ClaimTypes类不是一个枚举,它只包含一些预定义的const字符串值。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.