C# .NET 5.0 MVC JWT 中间件授权标头

Posted

技术标签:

【中文标题】C# .NET 5.0 MVC JWT 中间件授权标头【英文标题】:C# .NET 5.0 MVC JWT Middleware authorization header 【发布时间】:2022-01-16 13:29:23 【问题描述】:

问题是,当我通过 MVC 控制器 post 方法登录时,我获取 JWT 令牌并将其保存在 HttpContext 授权标头中,代码跳转到中间件,我可以在上下文中看到令牌,但很快由于调用函数调用 _next(context) 委托,因此没有更多的授权标头。我该如何解决这个问题?是否有一些好的做法如何将令牌从 mvc 控制器传递到中间件,以便我可以将帐户附加到上下文? 非常感谢

【问题讨论】:

【参考方案1】:

将令牌存储在 HttpContext.Session 中解决了这个问题。不过还是谢谢。

【讨论】:

【参考方案2】:

一个想法是您需要在此处将 SaveToken 设置为 true:

.AddOpenIdConnect(options =>

    ...
    options.SaveTokens = true;

如果没有,您可以将我们的启动课程发布到问题中吗?

【讨论】:

以上是关于C# .NET 5.0 MVC JWT 中间件授权标头的主要内容,如果未能解决你的问题,请参考以下文章

C# ASP.NET Core 5.0 - 为啥在使用 [Authorization] 时甚至不调用该方法

如何使用.Net Core cookie中间件ticketdataformat将Jwt令牌从Api保存到c#中的cookie

JWT 不记名令牌授权应用于 .NET Core 中的现有 MVC Web 应用程序

NET Core 3.1 MVC 授权/身份验证,带有在单独的 Net Core 3.1 Web Api 中从外部获取的令牌 (JWT)

使用 ASP.NET 核心 MVC/Razor 站点和 WebAPI 进行授权

ASP.NET Core 5.0 JWT 身份验证总是抛出 HTTP 401 代码