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
:
- Méthode GetPolicy(String)
- Getter DefaultPolicy
- Getter FallbackPolicy
- Getter InvokeHandlersAfterFailure
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.