ASP0025: use AddAuthorizationBuilder para registrar serviços de autorização e políticas de constructo.
Valor | |
---|---|
ID da regra | ASP0025 |
Categoria | Uso |
Correção interruptiva ou sem interrupção | Sem interrupção |
Causa
O uso de AddAuthorization pode ser convertido para o novo AddAuthorizationBuilder.
Descrição da regra
Use AddAuthorizationBuilder
para registrar serviços de autorização e políticas de constructo.
Como corrigir violações
Para corrigir uma violação dessa regra, substitua o uso de AddAuthorization
por AddAuthorizationBuilder
.
A correção de código converte qualquer uso dos setters para as seguintes propriedades de AuthorizationOptions:
Esses usos de setter são convertidos em chamadas de método equivalentes em AuthorizationBuilder:
Nenhum diagnóstico é relatado quando a ação de configuração passada para AddAuthorization
usa qualquer um dos seguintes membros de AuthorizationOptions
:
- O método GetPolicy(String)
- O getter DefaultPolicy
- O getter FallbackPolicy
- O getter InvokeHandlersAfterFailure
AuthorizationBuilder
não tem equivalentes para esses membros de AuthorizationOptions
, portanto, eles não podem ser convertidos.
Nenhum diagnóstico será relatado se a ação de configuração passada para AddAuthorization
contiver operações não relacionadas a AuthorizationOptions
. A correção de código não seria capaz de mapear automaticamente operações não relacionadas para a API fluente de AddAuthorizationBuilder
.
O exemplo a seguir mostra o código que dispara esse diagnóstico:
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();
O exemplo a seguir mostra o resultado da aplicação da correção de código:
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();
Quando suprimir avisos
O nível de gravidade desse diagnóstico é Informação. Suprima avisos se você não quiser usar a nova sintaxe.