- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试查找如何配置 jwt 承载及其 JwtBearerOptions 的文档在 asp.net 核心中,使用 Microsoft 预定义的配置部分/键从配置文件中获取。 Mucrosoft 文档中没有关于这可能与否的解释。我觉得这应该是可能的,因为 .net 核心生成中的所有内容都在使用选项模式。
Here is an example如何使用相同的技术来配置 Kestrel 主机。
最佳答案
这不是最初问题的真正答案。不过,我对这个解决方案非常满意。
在深入研究 AspNetCore 源代码几个小时后,我发现 JwtBearerOptions 是 added to the DI as a named options .这意味着您不能在不编写代码的情况下从配置文件提供配置。不过,我找到了一个可接受的解决方案,适用于大多数情况。
我没有所有可用键的列表,这里的示例只显示了其中两个。您可以检查 JwtBearerOptions 的公共(public)属性并将它们添加到 appsettings.json 中。它们将被框架挑选和使用。
请参阅下面的代码和那里的评论,了解其工作原理的详细信息:
appsettings.json
{
"Cronus": {
"Api": {
"JwtAuthentication": {
"Authority": "https://example.com",
"Audience": "https://example.com/resources"
}
}
}
}
Startup.cs
public class Startup
{
const string JwtSectionName = "Cronus:Api:JwtAuthentication";
private readonly IConfiguration configuration;
public Startup(IConfiguration configuration)
{
this.configuration = configuration;
}
public void ConfigureServices(IServiceCollection services)
{
// Gets the settings from a configuration section. Notice how we specify the name for the JwtBearerOptions to be JwtBearerDefaults.AuthenticationScheme.
services.Configure<JwtBearerOptions>(JwtBearerDefaults.AuthenticationScheme, configuration.GetSection(JwtSectionName));
// OR
// Gets the settings from a configuration. Notice how we specify the name for the JwtBearerOptions to be JwtBearerDefaults.AuthenticationScheme.
services.Configure<JwtBearerOptions>(JwtBearerDefaults.AuthenticationScheme, configuration);
services.AddAuthentication(o =>
{
// AspNetCore uses the DefaultAuthenticateScheme as a name for the JwtBearerOptions. You can skip these settings because .AddJwtBearer() is doing exactly this.
o.DefaultAuthenticateScheme = Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerDefaults.AuthenticationScheme;
o.DefaultChallengeScheme = Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer();
}
}
关于asp.net-core - 从配置文件配置 JwtBearerOptions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58729977/
我有 asp.net core 3.1 Web api 项目,代码如下: Startup.cs public virtual void ConfigureServices(IServiceCollec
我有 asp.net core 3.1 Web api 项目,代码如下: Startup.cs public virtual void ConfigureServices(IServiceCollec
我正在尝试查找如何配置 jwt 承载及其 JwtBearerOptions 的文档在 asp.net 核心中,使用 Microsoft 预定义的配置部分/键从配置文件中获取。 Mucrosoft 文档
我正在尝试向我的 ASP.NET Web 应用程序添加一些不记名 token 验证。我正在使用内置的 JWT 身份验证代码,配置为使用以下代码... services.AddAuthenticatio
JwtBearer 的 .Net Core Api 如下所示: _services .AddJwtBearer(options => { options.Events
Microsoft Docs只要有这个描述: Defines whether the bearer token should be stored in the AuthenticationProper
如果我在 Visual Studio 2017 中创建新的 ASP.NET Core MVC 应用程序,我可以使用一行将客户端 key 添加到 AzureAdServiceCollectionExte
我有一个 ASP .Net Core API 项目。在这个项目中,我使用 JWTBearer 身份验证。我还使用了 .Net Core 依赖注入(inject)的 AddDistributedRedi
我是一名优秀的程序员,十分优秀!