Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
| Valeur | |
|---|---|
| Identificateur de la règle | ASP0005 |
| Catégorie | Usage |
| Le correctif est cassant ou non cassant | Non-breaking |
La cause
Un attribut a été appliqué à une définition de méthode au lieu du gestionnaire de routage dans un point de terminaison de gestionnaire de routage.
Description de la règle
Lorsqu’un point de terminaison est déclaré, les attributs doivent être appliqués au paramètre délégué pour être effectifs. Par exemple, l’attribut Authorize dans l’exemple de code suivant n’est pas défini sur le point de terminaison inscrit :
app.MapGet("/todos/{id}", GetTodoById);
[Authorize]
Todo GetTodoById(int id)
{
...
}
L’attribut doit être placé sur le paramètre du gestionnaire d’itinéraires, comme indiqué dans le code suivant :
app.MapGet("/todos/{id}", [Authorize] GetTodoById);
Todo GetTodoById(int id)
{
...
}
Comment corriger les violations
Pour corriger une violation de cette règle, vérifiez que les attributs de point de terminaison sont appliqués au paramètre du gestionnaire de routage :
app.MapGet("/todos/{id}", [Authorize] (int id) => {});
app.MapGet("/users/{id}", [Authorize] GetUserById);
Quand supprimer les avertissements
Ne supprimez aucun avertissement de cette règle. Les attributs mal placés peuvent entraîner un comportement inattendu lors de l’exécution.