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


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

Ценность
Идентификатор правила ASP0025
Категория Использование
Исправление является разрушающим или неразрушающим Неразрывный

Причина

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

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

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

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

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

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

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

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

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

Сообщение о диагностике не отображается, если действие настройки, переданное в AddAuthorization, содержит операции, не связанные с AuthorizationOptions. Исправление кода не сможет автоматически сопоставлять несвязанные операции с Fluent 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();

Когда следует подавлять предупреждения

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