【问题标题】:How to get user id from jwt token?如何从 jwt 令牌中获取用户 ID?
【发布时间】:2020-05-05 03:53:49
【问题描述】:

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

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

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

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

【问题讨论】:

  • 嗯,更改您的声明类型过滤器以获取其他声明?

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


【解决方案1】:

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

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

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

【讨论】:

猜你喜欢
  • 2021-07-05
  • 2019-11-07
  • 1970-01-01
  • 2018-01-09
  • 2021-04-07
  • 2016-06-21
  • 2017-02-10
相关资源
最近更新 更多