Dela via


ASP0005: Placera inte attributet på metoden som anropas av routningshanteraren lambda

Värde
Regel-ID ASP0005
Kategori Användning
Korrigeringen är antingen brytande eller icke-brytande Oskiljbar

Orsak

Ett attribut tillämpades på en metoddefinition i stället för routningshanteraren i en routningshanterares slutpunkt.

Regelbeskrivning

När en slutpunkt deklareras bör attribut tillämpas på delegatparametern för att vara effektiva. Attributet Auktorisera i följande kodexempel anges till exempel inte på den registrerade slutpunkten:

app.MapGet("/todos/{id}", GetTodoById);

[Authorize]
Todo GetTodoById(int id)
{
  ...
}

Attributet måste placeras på routningshanterarparametern enligt följande kod:

app.MapGet("/todos/{id}", [Authorize] GetTodoById);

Todo GetTodoById(int id)
{
  ...
}

Så här åtgärdar du överträdelser

Om du vill åtgärda ett brott mot den här regeln kontrollerar du att slutpunktsattribut tillämpas på routningshanterarparametern:

app.MapGet("/todos/{id}", [Authorize] (int id) => {});
app.MapGet("/users/{id}", [Authorize] GetUserById);

När du ska ignorera varningar

Ignorera inte en varning från den här regeln. Felplacerade attribut kan resultera i oväntat beteende vid körning.