Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
| Valor | |
|---|---|
| ID da regra | ASP0025 |
| Categoria | Utilização |
| A correção é invasiva ou não invasiva | Inquebrável |
Motivo
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 construir políticas.
Como corrigir violações
Para corrigir uma violação desta 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 DefaultPolicy método getter
- O FallbackPolicy método getter
- O InvokeHandlersAfterFailure método getter
AuthorizationBuilder não tem equivalentes para esses membros do AuthorizationOptions, então 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 ao AuthorizationOptions. A correção de código não seria capaz de mapear automaticamente operações não relacionadas para a API fluente do 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 deste diagnóstico é informativo. Suprima avisos se não quiser usar a nova sintaxe.