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

How to get user id from jwt token?

网络核心应用。通过大摇大摆,我正在对我的网络 api 应用程序进行身份验证。我在 swagger 的每个请求中发送 JWT 令牌。此 jwt 令牌包含 Azure 用户 objectid。我想取回它。我试过如下。

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

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

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

如果您知道要查找的声明名称,则可以直接使用它来代替 ClaimTypes class.

中定义的名称
userId = _httpContextAccessor.HttpContext.User.Claims.First(i => i.Type == "CLAIM_NAME").Value;

ClaimTypes class 不是枚举,它只是包含一些预定义的常量字符串值。