ASP0025: Usar AddAuthorizationBuilder para registrar servicios de autorización y construir directivas.
Valor | |
---|---|
Identificador de la regla | ASP0025 |
Categoría | Uso |
La corrección es problemática o no problemática | Poco problemático |
Causa
El uso de AddAuthorization se puede convertir en el nuevo AddAuthorizationBuilder.
Descripción de la regla
Use AddAuthorizationBuilder
para registrar servicios de autorización y construir directivas.
Cómo corregir infracciones
Para corregir una infracción de esta norma, sustituya el uso de AddAuthorization
por AddAuthorizationBuilder
.
El código corregido convierte cualquier uso de los setters para las siguientes propiedades de AuthorizationOptions:
Estos usos de establecedor se convierten en llamadas de método equivalentes en AuthorizationBuilder:
No se informa ningún diagnóstico cuando la acción de configuración pasada a AddAuthorization
usa cualquiera de los siguientes miembros de AuthorizationOptions
:
- El método GetPolicy(String)
- El DefaultPolicy captador
- El FallbackPolicy captador
- El InvokeHandlersAfterFailure captador
AuthorizationBuilder
no tiene equivalentes para estos miembros de AuthorizationOptions
, por lo que no se pueden convertir.
No se infrorma ningún diagnóstico si la acción de configuración pasada a AddAuthorization
contiene operaciones no relacionadas con AuthorizationOptions
. La corrección de código no podría asignar automáticamente operaciones no relacionadas a la API fluida de AddAuthorizationBuilder
.
En el siguiente ejemplo se muestra el código que desencadena este 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();
En el ejemplo siguiente se muestra el resultado de aplicar la corrección 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();
Cuándo suprimir las advertencias
El nivel de gravedad de este diagnóstico es Información. Suprima las advertencias si no desea usar la nueva sintaxis.