Установка политики авторизации по умолчанию для нескольких политик - PullRequest
0 голосов
/ 03 апреля 2019

Я устанавливаю 2 возможных Политики для моего приложения

services.AddAuthorization(auth =>
            {
                auth.AddPolicy("Bearer", new AuthorizationPolicyBuilder()
                    .AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme)
                    .RequireAuthenticatedUser().Build());

                auth.AddPolicy("apiKey", policy =>
                    policy.Requirements.Add(new ApiKeyRequirement()));
            });

Обязательно делает [Authorize (Policy = "Bearer")] или [Authorize (Policy = "ApiKey")] при вызовемои контроллеры.

Есть ли способ установить один из них в качестве значения по умолчанию, тогда, когда я хочу использовать его, я могу использовать просто [Авторизовать], и если я хочу использовать другой, Я это укажу?

Например:

Установка «Носителя» по умолчанию, тогда при использовании схемы «Носитель» мне просто нужно установить [Авторизовать], но если я хочу использовать«ApiKey», я указываю это с помощью [Authorize (Policy = «ApiKey»)]]

Не удалось найти ни одного примера.

1 Ответ

0 голосов
/ 03 апреля 2019

Найдено свойство, которое можно установить по умолчанию:

services.AddAuthorization(auth =>
            {
                auth.AddPolicy("Bearer", new AuthorizationPolicyBuilder()
                    .AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme)
                    .RequireAuthenticatedUser().Build());

                auth.AddPolicy("apiKey", policy =>
                    policy.Requirements.Add(new ApiKeyRequirement()));

                auth.DefaultPolicy = auth.GetPolicy("Bearer");
            });

, в этом случае, когда я хочу использовать схему «Носитель», мне просто нужно использовать [Авторизация]

...