ASP0025: K registraci autorizačních služeb a vytváření zásad použijte AddAuthorizationBuilder.
Hodnota | |
---|---|
ID pravidla | ASP0025 |
Kategorie | Využití |
Oprava způsobující chybu nebo chybu způsobující chybu | Nenarušující |
Příčina
Použití AddAuthorization lze převést na nový AddAuthorizationBuilder.
Popis pravidla
Slouží AddAuthorizationBuilder
k registraci autorizačních služeb a vytváření zásad.
Jak opravit porušení
Chcete-li opravit porušení tohoto pravidla, nahraďte použití AddAuthorization
parametrem AddAuthorizationBuilder
.
Oprava kódu převede jakékoli použití setter pro následující vlastnosti AuthorizationOptions:
Tato použití setteru se převedou na ekvivalentní volání AuthorizationBuildermetody:
Při předání akce konfigurace pro AddAuthorization
použití některého z následujících členů AuthorizationOptions
není hlášena žádná diagnostika:
- Metoda GetPolicy(String)
- Getter DefaultPolicy
- Getter FallbackPolicy
- Getter InvokeHandlersAfterFailure
AuthorizationBuilder
nemá ekvivalenty pro tyto členy AuthorizationOptions
, takže je nelze převést.
Není hlášena žádná diagnostika, pokud je akce konfigurace předána do AddAuthorization
operací nesouvisejících s AuthorizationOptions
. Oprava kódu by nemohla automaticky mapovat nesouvisející operace s rozhraním API fluent .AddAuthorizationBuilder
Následující příklad ukazuje kód, který aktivuje tuto diagnostiku:
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();
Následující příklad ukazuje výsledek použití opravy kódu:
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();
Kdy potlačit upozornění
Úroveň závažnosti této diagnostiky je Informace. Pokud nechcete používat novou syntaxi, potlačí upozornění.