Compartir vía


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:

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.