我正在尝试在我的中间件类中,在 .net core 中进行一次身份验证过程后获取 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();