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:

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.