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
:
- Metodo GetPolicy(String)
- Il DefaultPolicy getter
- Il FallbackPolicy getter
- Il InvokeHandlersAfterFailure getter
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.