问题描述: 在ASP.NET Core中,使用多个JWTBearer进行身份验证时,可能会遇到身份验证失败的问题。
解决方法: 以下是一个解决方法,其中包含代码示例:
public void ConfigureServices(IServiceCollection services)
{
// 配置第一个JWTBearer身份验证
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer("Bearer1", options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
// 配置JWT验证参数
};
});
// 配置第二个JWTBearer身份验证
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer("Bearer2", options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
// 配置JWT验证参数
};
});
// 其他配置代码...
}
[Authorize(AuthenticationSchemes = "Bearer1")]
public class MyController : Controller
{
// Controller的代码...
}
请根据实际情况,根据自己的需求和配置,调整上述代码。