【问题标题】:How to get the incoming access token in ASP.NET API如何在 ASP.NET API 中获取传入的访问令牌
【发布时间】:2021-03-28 22:49:36
【问题描述】:

我需要使用传入的访问令牌中的声明在 ASP.NET API 操作中运行一些逻辑。如何获取访问令牌?之后如何获取访问令牌中的声明值?

[HttpGet]
[Authorize(Policy = "PaidMember")]
[Route("GetVideos")]
public async Task<IEnumerable<VideoModel>> GetVideos(string topicId)
{
    var accessToken = ... // TODO: Get the access token here

    // Then something like the following
    var type = accessToken.GetValue("membershiptype") // This line is made up
    return await _service.GetVideos(topicId, type );
}

【问题讨论】:

  • 这个link可能对你有用

标签: c# asp.net-core asp.net-web-api bearer-token


【解决方案1】:

【讨论】:

    【解决方案2】:

    您可以像这样获取声明值:

    (User.Identity as ClaimsIdentity).FindFirst("membershiptype").Value
    

    有了这个就不需要获取原始token了

    【讨论】:

      【解决方案3】:

      您可以通过以下方式获得索赔:

      HttpContext.User.Claims
      

      查看此处获取具体声明:Extract values from HttpContext.User.Claims

      如果您想检查声明,我建议您使用带有授权中间件的 ASP 管道。见Microsoft Docs - ASP.NET Core Middleware

      【讨论】:

        猜你喜欢
        • 2023-04-04
        • 2016-08-28
        • 2015-05-11
        • 2017-02-14
        • 1970-01-01
        • 2013-03-02
        • 2023-04-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多