【发布时间】:2020-02-22 06:14:54
【问题描述】:
我有一个在标头中发送的 JWT,其密钥为“X-JWT-Assertion”。
它到达就好了。我可以使用IAuthorizationFilter 成功验证它。
然后我将IHttpContextAccessor 注入我的控制器并检查User 属性(System.Security.Claims.ClaimsIdentity)。尽管我的 JWT 有很多声明,但它没有声明。
我的猜测是我的 WSO2 服务器正在以非标准标头名称发送 JWT,因此 .NET Core 代码不知道它在那里。
我可以手动访问 JWT 来获取我的声明,但我宁愿使用内置的 .NET 方法。
有什么方法可以将我的 JWT 与 IHttpContextAccessor.User 对象连接起来吗?
【问题讨论】:
-
请发布您的
Startup.cs代码,用于配置您的应用程序的身份验证和授权。使用IAuthorizationFilter不会自动将 JWT 声明映射到ClaimsPrincipal声明。此外,ASP.NET Core 具有内置的 JWT 声明映射,通常需要清除它们,因为它们无用且适得其反:leastprivilege.com/2016/08/21/…
标签: asp.net-core .net-core jwt .net-core-3.0 asp.net-core-3.0