.NET核心-在运行时配置JWT身份验证

时间:2019-12-17 21:15:25

标签: c# asp.net authentication asp.net-core jwt-auth

我有一个ASP.NET Core 2 Web应用程序,并且我在需要身份验证的控制器上使用 [Authorize] 属性。作为身份验证,我使用的是JWT,我可以使用

Startup类中进行配置
.AddJwtBearer(options => {
    options.Audience = "....";
    options.Authority = "....";
});

这会很好。我的问题是,启动时我没有供受众和权限使用的信息,并且我必须在运行时进行配置。

有什么办法吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试:

  1. 注册多jwt身份验证架构,并根据request中的参数/ reqeust标头值动态选择所需的架构。单击here以获得代码示例。

  2. 配置并替换您的ISecurityTokenValidator。使用DI注入IHttpContextAccessor从请求中读取数据。单击herehere以获得代码示例。

  3. 使用JwtSecurityTokenHandler手动验证JWT令牌。单击here以获得代码示例。