Compartir a través de


ASP0025: use AddAuthorizationBuilder para registrar los servicios de autorización y construir directivas.

Importancia
Identificador de la regla ASP0025
Categoría Uso
La corrección es disruptiva o no disruptiva 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 regla, reemplace el uso de AddAuthorization por AddAuthorizationBuilder.

La corrección de código convierte cualquier uso de los establecedores para las siguientes propiedades de AuthorizationOptions:

Estos usos de establecedor se convierten en llamadas de método equivalentes en AuthorizationBuilder:

No se notifica 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 notifica 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 ejemplo siguiente 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 advertencias si no desea usar la nueva sintaxis.