Partager via


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

Valeur
Identificateur de la règle ASP0025
Catégorie Utilisation
Le correctif est cassant ou non cassant Inaltérable

La cause

L’utilisation de AddAuthorization peut être convertie en nouveau AddAuthorizationBuilder.

Description de la règle

Utilisez AddAuthorizationBuilder pour enregistrer des services d’autorisation et construire des politiques.

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 setter sont converties en appels de méthode équivalents sur AuthorizationBuilder:

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

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

Aucun diagnostic n’est signalé si l’action de configuration passée à AddAuthorization contient des opérations non liées à AuthorizationOptions. Le correctif de code ne serait pas en mesure de mapper automatiquement les 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.