问题描述:ASP.Net Core 3 API始终返回401- JwtBearer
解决方法:
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ValidIssuer = "your_issuer",
ValidAudience = "your_audience",
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("your_secret_key")),
};
});
请确保将your_issuer
替换为实际的发行者,your_audience
替换为实际的受众,your_secret_key
替换为实际的密钥。
app.UseAuthentication();
[Authorize]
public class MyController : ControllerBase
{
//...
}
这将确保只有经过身份验证的用户可以访问这些资源。
请注意,您还需要确保在请求中包含有效的身份验证令牌。您可以在请求的标头中添加Authorization标头,值为"Bearer your_token",其中your_token
是您的有效身份验证令牌。
如果您仍然遇到问题,可以尝试使用调试工具(如Postman)进行调试,以确定是否正确配置了JwtBearer认证服务和身份验证中间件。
上一篇:ASP.NET Core 3 API忽略带有Bearer令牌的Authorize属性。
下一篇:ASP.NET Core 3 Blazor:在服务器的本地主机上运行正常,但在服务器外部运行时出现错误:WebSocket 握手期间出错:意外的响应代码:200。