ASP0025: usare AddAuthorizationBuilder per registrare i servizi di autorizzazione e costruire criteri.

Valore
ID regola ASP0025
Categoria Utilizzo
Correzione che causa un'interruzione o un'interruzione Nessuna interruzione

Causa

L'uso di AddAuthorization può essere convertito nel nuovo AddAuthorizationBuilderoggetto .

Descrizione regola

Usare AddAuthorizationBuilder per registrare i servizi di autorizzazione e costruire criteri.

Come correggere le violazioni

Per correggere una violazione di questa regola, sostituire l'utilizzo di AddAuthorization con AddAuthorizationBuilder.

La correzione del codice converte qualsiasi utilizzo dei setter per le proprietà seguenti di AuthorizationOptions:

Questi utilizzi setter vengono convertiti in chiamate di metodo equivalenti in AuthorizationBuilder:

Non viene segnalata alcuna diagnostica quando l'azione di configurazione passata a AddAuthorization usa uno dei membri seguenti di AuthorizationOptions:

AuthorizationBuilder non ha equivalenti per questi membri di AuthorizationOptions, quindi non possono essere convertiti.

Non viene segnalata alcuna diagnostica se l'azione di configurazione passata a AddAuthorization contiene operazioni non correlate a AuthorizationOptions. La correzione del codice non sarebbe in grado di eseguire automaticamente il mapping delle operazioni non correlate all'API Fluent di AddAuthorizationBuilder.

L'esempio seguente mostra il codice che attiva questa diagnostica:

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();

L'esempio seguente mostra il risultato dell'applicazione della correzione del codice:

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 eliminare gli avvisi

Il livello di gravità di questa diagnostica è Informazioni. Eliminare gli avvisi se non si vuole usare la nuova sintassi.