Поделиться через


ASP0025. Используйте AddAuthorizationBuilder для регистрации служб авторизации и создания политик.

Значение
Идентификатор правила ASP0025
Категория Использование
Исправление является критическим или не критическим Не критическое

Причина

Использование AddAuthorization можно преобразовать в новое AddAuthorizationBuilder.

Описание правила

Используется AddAuthorizationBuilder для регистрации служб авторизации и создания политик.

Устранение нарушений

Чтобы устранить нарушение этого правила, замените его использованием AddAuthorizationAddAuthorizationBuilder.

Исправление кода преобразует любое использование наборов для следующих свойств AuthorizationOptions:

Эти методы задания преобразуются в эквивалентные вызовы метода в AuthorizationBuilder:

Диагностика не сообщается, когда действие настройки, переданное для AddAuthorization использования любого из следующих элементов AuthorizationOptions:

AuthorizationBuilder не имеет эквивалентов для этих членов AuthorizationOptions, поэтому их нельзя преобразовать.

Если действие настройки, переданное в AddAuthorization нее, не связано с операциями, не связанными AuthorizationOptionsс ней, не сообщается. Исправление кода не сможет автоматически сопоставлять несвязанные операции с текучим API AddAuthorizationBuilder.

В следующем примере показан код, который активирует эту диагностику:

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddAuthorization(options =>
{
    options.AddPolicy("AtLeast21", policy =>
        policy.Requirements.Add(new MinimumAgeRequirement(21)));
});

var app = builder.Build();

app.UseAuthorization();

app.Run();

В следующем примере показан результат применения исправления кода:

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddAuthorizationBuilder()
  .AddPolicy("AtLeast21", policy =>
  {
        policy.Requirements.Add(new MinimumAgeRequirement(21)));
  });

var app = builder.Build();

app.UseAuthorization();

app.Run();

Когда лучше отключить предупреждения

Уровень серьезности этой диагностики — Сведения. Отключайте предупреждения, если вы не хотите использовать новый синтаксис.