Partager via


ASP0025 : utilisez AddAuthorizationBuilder pour inscrire des services d’autorisation et construire des stratégies.

Value
Identificateur de la règle ASP0025
Catégorie Utilisation
Le correctif est cassant ou non cassant Sans rupture

Cause

L’utilisation de AddAuthorization peut migrer vers le nouveau AddAuthorizationBuilder.

Description de la règle

Utilisez AddAuthorizationBuilder pour inscrire des services d’autorisation et construire des stratégies.

Comment corriger les violations

Pour corriger une violation de cette règle, remplacez l’utilisation de AddAuthorization par AddAuthorizationBuilder.

Le correctif de code convertit toute utilisation des setters pour les propriétés suivantes de AuthorizationOptions :

Ces utilisations de setter sont converties en appels de méthode équivalents sur AuthorizationBuilder :

Aucun diagnostic n’est signalé lorsque l’action de configuration passée à AddAuthorization utilise l’un des membres suivants de AuthorizationOptions :

AuthorizationBuilder n’a pas d’équivalents pour ces membres de AuthorizationOptions, ils ne peuvent donc pas être convertis.

Aucun diagnostic n’est signalé si l’action de configuration transmise à AddAuthorization contient des opérations non liées à AuthorizationOptions. Le correctif de code ne serait pas en mesure de mapper automatiquement des opérations non liées à l’API Fluent de AddAuthorizationBuilder.

L’exemple suivant montre le code qui déclenche ce diagnostic :

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

L’exemple suivant montre le résultat de l’application du correctif de code :

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

Quand supprimer les avertissements

Le niveau de gravité de ce diagnostic est Information. Supprimez les avertissements si vous ne souhaitez pas utiliser la nouvelle syntaxe.