c# - 在中间件 .net core 2.0 中获取访问令牌
问题描述
在 .net 核心中的一个身份验证过程之后,我试图在我的中间件类中获取 access_token。
我正在使用此代码在我的控制器中获取我的令牌
var accessToken = await HttpContext.GetTokenAsync("access_token");
但是,当我想在身份验证部分之后调用的中间件上获取它时,GetTokenAsync
HttpContext 不存在该方法。
我的中间件类是这个
public class Session
{
private readonly RequestDelegate _next;
public Session(RequestDelegate next)
{
_next = next;
}
public async Task InvokeAsync(HttpContext httpContext)
{
var accessToken = // here I want to get my token
await _next(httpContext);
}
}
我尝试了不同的方法,我一直在寻找答案,但我仍然没有解决方案。
我认为 HttpContext 类在中间件和控制器中是不同的,但我不知道如何在中间件中解决这个问题。
有人知道我怎样才能在中间件调用中访问令牌,或者是否有可能?
我的启动调用是这些,也许它也很有用。
app.UseAuthentication();
app.UseHttpsRedirection();
app.UseMiddleware<Session>();
app.UseMvc();
解决方案
添加using Microsoft.AspNetCore.Authentication;
到您的中间件文件。那是AuthenticationTokenExtensions
withGetTokenAsync
方法的命名空间。
推荐阅读
- java - 如何在android中为按钮的文本添加阴影?
- c# - 为什么我的 C# 程序无法识别长度?
- amazon-cloudformation - 无服务器部署:CloudFormation 更新后停止观看
- javascript - 将数据从 Ajax 发送到 Laravel 控制器。Vuejs
- solr - solr可以提前缓存请求吗?
- php - 如何使用 JSON 字典在 PHP 中创建简单的 NLP 字图?
- c# - NPGSQL 处理需要命令的 postgre 通知
- swift - 获取在 scn 文件中创建的球体的位置
- .htaccess - 使用 .htaccess 重定向将旧 url 重定向到新 url
- c# - 将相同的字符串变量转换为字符串[]