【发布时间】:2019-08-14 17:46:52
【问题描述】:
我有一个配置为使用 JWT 不记名令牌进行身份验证的 ASP.NET Core Web 应用程序:
// Setup.cs
// ...
public void ConfigureServices(IServiceCollection services) {
services
.AddAuthentication()
.AddJwtBearer(
options =>
{
options.Authority = "https://known.authority.url";
});
}
// ...
该应用有一个控制器操作,它可以接收使用 POST 请求正文中相同的密钥信息签名的 JWT。
// TokenController.cs
// ...
[AllowAnonymous]
[HttpPost]
public async Task<IActionResult> ActionAsync()
{
using (var stream = new MemoryStream())
using (var reader = new StreamReader(stream))
{
await Request.Body.CopyToAsync(stream);
stream.Seek(0, SeekOrigin.Begin);
var jwt = await reader.ReadToEndAsync();
// ...
}
// ...
}
// ...
我想使用在不记名令牌身份验证处理程序中配置的相同验证参数和签名密钥来验证控制器操作中收到的 JWT。 (最好不要复制控制器操作的配置。)
如何在控制器操作中访问身份验证处理程序的 JwtBearerOptions Configuration 属性?
我已确认JwtBearerHandler 是HttpContext.RequestServices 中的注册服务,但其Options 属性始终为null。
【问题讨论】:
标签: c# asp.net-core jwt jwt-auth