【发布时间】:2022-02-04 21:23:47
【问题描述】:
我正在 .NET 6 中开发 Web-Api,并且我正在尝试使用 JWT 进行身份验证。
在我的Program.cs 文件中,我添加了如下身份验证:
builder.Services
.AddAuthentication(defaultScheme: JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options => options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateIssuerSigningKey = true,
ValidIssuer = builder.Configuration["JwtSettings:Issuer"],
ValidAudience = builder.Configuration["JwtSettings:Audience"],
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(builder.Configuration["JwtSettings:SigningKey"])),
});
我在我想要保护的方法上使用了[Authorize] 属性。
这仅在我指定这样的身份验证方案时才有效:
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
我在设置默认身份验证方案时做错了什么,所以我可以按原样使用[Authorize] 属性。
提前致谢。
【问题讨论】: