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