Delen via


ASP0025: Gebruik AddAuthorizationBuilder om autorisatieservices te registreren en beleidsregels samen te stellen.

Waarde
Regel-id ASP0025
Categorie Gebruik
De oplossing veroorzaakt brekende of niet-brekende problemen Niet-afbreekbaar

Oorzaak

Het gebruik van AddAuthorization kan worden geconverteerd naar de nieuwe AddAuthorizationBuilder.

Beschrijving van regel

Gebruik AddAuthorizationBuilder dit om autorisatieservices te registreren en beleidsregels samen te stellen.

Hoe schendingen op te lossen

Als u een schending van deze regel wilt oplossen, vervangt u het gebruik door AddAuthorizationAddAuthorizationBuilder.

Met de codefix wordt elk gebruik van de setters geconverteerd voor de volgende eigenschappen:AuthorizationOptions

Deze settergebruiken worden geconverteerd naar equivalente methode-aanroepen op AuthorizationBuilder:

Er wordt geen diagnostiek gerapporteerd wanneer de configureeractie die is doorgegeven aan AddAuthorization gebruikmaakt van een van de volgende leden van AuthorizationOptions:

AuthorizationBuilder heeft geen equivalenten voor deze leden van AuthorizationOptions, zodat ze niet kunnen worden geconverteerd.

Er wordt geen diagnose gerapporteerd als de geconfigureerde actie die is doorgegeven aan AddAuthorization bewerkingen bevat die niet gerelateerd zijn aan AuthorizationOptions. De codefix kan niet automatisch niet-gerelateerde bewerkingen toewijzen aan de fluent-API van AddAuthorizationBuilder.

In het volgende voorbeeld ziet u code waarmee deze diagnose wordt geactiveerd:

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

In het volgende voorbeeld ziet u het resultaat van het toepassen van de codefix:

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

Wanneer waarschuwingen onderdrukken

Het ernstniveau van deze diagnose is Informatief. Onderdrukt waarschuwingen als u de nieuwe syntaxis niet wilt gebruiken.