ASP0025: Verwenden von AddAuthorizationBuilder, um Autorisierungsdienste zu registrieren und Richtlinien zu erstellen.
Wert | |
---|---|
Regel-ID | ASP0025 |
Kategorie | Verwendung |
Fix führt oder führt nicht zur Unterbrechung | Nicht unterbrechend |
Ursache
Die Verwendung der Methode AddAuthorization kann in die neue Methode AddAuthorizationBuilder konvertiert werden.
Regelbeschreibung
Verwenden Sie AddAuthorizationBuilder
, um Autorisierungsdienste zu registrieren und Richtlinien zu erstellen.
Behandeln von Verstößen
Um einen Verstoß gegen diese Regel zu beheben, ersetzen Sie die Verwendung von AddAuthorization
durch AddAuthorizationBuilder
.
Der Codefix konvertiert jede Verwendung der Setter für die folgenden AuthorizationOptions-Eigenschaften:
Diese Verwendungen der Setter werden in entsprechende Methodenaufrufe für AuthorizationBuilder konvertiert:
Es wird keine Diagnose gemeldet, wenn die an AddAuthorization
übergebene Konfigurationsaktion einen der folgenden Member von AuthorizationOptions
verwendet:
- Die GetPolicy(String) -Methode
- Der DefaultPolicy-Getter
- Der FallbackPolicy-Getter
- Der InvokeHandlersAfterFailure-Getter
AuthorizationBuilder
verfügt nicht über Entsprechungen für diese Member von AuthorizationOptions
, sodass sie nicht konvertiert werden können.
Es wird keine Diagnose gemeldet, wenn die an AddAuthorization
übergebene Konfigurationsaktion Vorgänge enthält, die nicht mit AuthorizationOptions
zusammenhängen. Der Codefix wäre nicht in der Lage, Vorgänge automatisch zuzuordnen, die nicht mit der Fluent-API von AddAuthorizationBuilder
im Zusammenhang stehen.
Das folgende Beispiel zeigt Code, der diese Diagnose auslöst:
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();
Das folgende Beispiel zeigt das Ergebnis der Anwendung des Codefixes:
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();
Wann sollten Warnungen unterdrückt werden?
Der Schweregrad dieser Diagnose ist „Information“. Unterdrücken Sie Warnungen, wenn Sie die neue Syntax nicht verwenden möchten.
ASP.NET Core