Dela via


ASP0025: Använd AddAuthorizationBuilder för att registrera auktoriseringstjänster och skapa principer.

Värde
Regel-ID ASP0025
Kategori Användning
Korrigeringen är antingen brytande eller icke-brytande Oskiljbar

Orsak

Användningen av AddAuthorization kan konverteras till den nya AddAuthorizationBuilder.

Regelbeskrivning

Använd AddAuthorizationBuilder för att registrera auktoriseringstjänster och skapa principer.

Så här åtgärdar du överträdelser

Om du vill åtgärda ett brott mot den här regeln ersätter du användningen av AddAuthorization med AddAuthorizationBuilder.

Kodkorrigeringen konverterar all användning av setters för följande egenskaper för AuthorizationOptions:

Dessa setter-användningar konverteras till motsvarande metodanrop på AuthorizationBuilder:

Ingen diagnostik rapporteras när konfigurationsåtgärden som skickas till AddAuthorization använder någon av följande medlemmar i AuthorizationOptions:

AuthorizationBuilder har inte motsvarigheter för dessa element i AuthorizationOptions, så de kan inte konverteras.

Ingen diagnostik rapporteras om den konfigurerade åtgärden som skickas till AddAuthorization innehåller åtgärder som inte är relaterade till AuthorizationOptions. Kodkorrigeringen skulle inte automatiskt kunna mappa orelaterade åtgärder till api:et fluent för AddAuthorizationBuilder.

I följande exempel visas kod som utlöser den här diagnostiken:

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

I följande exempel visas resultatet av att tillämpa kodkorrigeringen:

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

När du ska ignorera varningar

Allvarlighetsgraden för den här diagnostiken är Information. Ignorera varningar om du inte vill använda den nya syntaxen.