具有多种身份验证方案的授权

时间:2019-07-30 15:16:54

标签: c# asp.net-core jwt authorization

我在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的令牌是未授权的(第一)。

我错过了什么?

0 个答案:

没有答案