Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
| Ценность | |
|---|---|
| Идентификатор правила | ASP0025 |
| Категория | Использование |
| Исправление является разрушающим или неразрушающим | Неразрывный |
Причина
Использование AddAuthorization можно преобразовать в новое AddAuthorizationBuilder.
Описание правила
Используется AddAuthorizationBuilder для регистрации служб авторизации и создания политик.
Устранение нарушений
Чтобы устранить нарушение этого правила, замените использование AddAuthorization на AddAuthorizationBuilder.
Исправление кода преобразует любое использование методов задания для следующих свойств AuthorizationOptions:
Эти способы использования сеттеров преобразуются в эквивалентные вызовы метода на AuthorizationBuilder:
Диагностика не выполняется, когда действие настройки, переданное в AddAuthorization, использует любой из следующих членов AuthorizationOptions:
- Метод GetPolicy(String)
- Геттер DefaultPolicy
- Геттер FallbackPolicy
- Геттер InvokeHandlersAfterFailure
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();
Когда следует подавлять предупреждения
Уровень важности этой диагностики — Информация. Отключайте предупреждения, если вы не хотите использовать новый синтаксис.
ASP.NET Core