在ASP.NET Core 3.0 Web API中,"Authorize"属性无法阻止请求的问题可能是由于配置不正确或代码逻辑错误引起的。以下是一个可能的解决方法,包含代码示例:
public void ConfigureServices(IServiceCollection services)
{
// 添加身份验证服务
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ValidIssuer = Configuration["Jwt:Issuer"],
ValidAudience = Configuration["Jwt:Issuer"],
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["Jwt:Key"]))
};
});
// 添加授权服务
services.AddAuthorization();
// 添加其他服务
// ...
}
[ApiController]
[Authorize]
[Route("api/[controller]")]
public class MyController : ControllerBase
{
[HttpGet]
public IActionResult Get()
{
// 执行某些操作
return Ok();
}
}
GET /api/mycontroller HTTP/1.1
Host: localhost:5000
Authorization: Bearer
请确保
替换为实际的身份验证令牌。
通过以上步骤,您应该能够解决ASP.NET Core 3.0 Web API中的"Authorize"属性无法阻止请求的问题。请注意,这只是一个示例解决方法,您可能需要根据您的具体需求进行适当的修改和调整。