我在ASP.NET Core API(v2.1)中使用this way of adding multiple authorization
这是我的代码:
public void ConfigureServices(IServiceCollection services)
{
const string OtherSchema = "MyOtherSchema";
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(JwtBearerDefaults.AuthenticationScheme, options =>
{
options.TokenValidationParameters = GetFirstTokenValidationParameters();
})
.AddJwtBearer(OtherSchema, options =>
{
options.TokenValidationParameters = GetSecondTokenValidationParameters();
});
services.AddAuthorization(options =>
{
options.DefaultPolicy =
new AuthorizationPolicyBuilder()
.AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme, OtherSchema)
.RequireAuthenticatedUser()
.Build();
});
然后我用[Authorize]
属性装饰了端点。
现在的问题是,默认模式的令牌已被授权(第一个),而MyOtherSchema的令牌是未授权的(第二个)。
即使我交换了AddJwtBearer
中的方案,仍然是默认模式的令牌已授权(第二),而MyOtherSchema的令牌是未授权的(第一)。
我错过了什么?