首页 / 问答 / 问答详情

.NET Core 2.0应用程序中如何从请求上下文(HttpContext)中获取访问令牌(Access Token)?

0

在.NET Core的应用程序编程开发中,.NET Core 1.0版本中,我们可以使用如下的方式从请求上下文(HttpContext)中获取当前用户的访问令牌(Access Token),如下:

[Authorize]
public async Task<IActionResult> ClientUpdate(ClientModel client)
{
    var accessToken = await HttpContext.Authentication.GetTokenAsync("access_token");
    return View();
}

但是当把.NET Core从1.0升级到.NET Core 2.0之后,以上的方式获取到的用户令牌为空了,如下:

[Authorize]
public async Task<IActionResult> ClientUpdate(ClientModel client)
{

    var accessToken = await context.HttpContext.GetTokenAsync("access_token");

    return View();
}

那么,在.NET Core 2.0的应用程序编程开发中,又如何从请求上下文(HttpContext)中获取访问令牌(Access Token)呢?

回复 [×]
提交评论
请输入评论内容

3 个回答

  • 0

    .NET Core 2.1的应用程序编程开发中,可以使用Request.Headers[]来访问请求上下文中的数据,比如要获取用户访问令牌:

    Rector的个人主页

    Rector

    1个月前 回答

    • 0

      在.NET Core 2.1的应用程序中,如果要通过HttpContext.GetTokenAsync()方法来获取请求上下文的令牌,则需要配置Startup.cs的权限认证选项,如下:

      然后,在控制器中通过HttpContext.GetTokenAsync()方法访问请求上下文的令牌,如下:

      Rector的个人主页

      Rector

      1个月前 回答

      • 0

        在控制器中注入IHttpContextAccessor,然后通过它的实例访问。

        Startup.cs

        控制器的构造函数中注入IHttpContextAccessor,如下:

        访问请求上下文的示例:

        Rector的个人主页

        Rector

        1个月前 回答

        我来回答