ASP0005: Neumisťujte atribut do metody volané metodou lambda obslužné rutiny trasy
Hodnota | |
---|---|
ID pravidla | ASP0005 |
Kategorie | Využití |
Oprava způsobující chybu nebo chybu způsobující chybu | Nenarušující |
Příčina
Atribut byl použit na definici metody místo obslužné rutiny trasy v koncovém bodu obslužné rutiny trasy.
Popis pravidla
Když je koncový bod deklarován, měly by být atributy použity na parametr delegáta, aby byly efektivní. Například atribut Authorize v následující ukázce kódu není nastavený na registrovaném koncovém bodu:
app.MapGet("/todos/{id}", GetTodoById);
[Authorize]
Todo GetTodoById(int id)
{
...
}
Atribut musí být umístěn na parametr obslužné rutiny trasy, jak je znázorněno v následujícím kódu:
app.MapGet("/todos/{id}", [Authorize] GetTodoById);
Todo GetTodoById(int id)
{
...
}
Jak opravit porušení
Chcete-li opravit porušení tohoto pravidla, ujistěte se, že jsou atributy koncového bodu použity na parametr obslužné rutiny trasy:
app.MapGet("/todos/{id}", [Authorize] (int id) => {});
app.MapGet("/users/{id}", [Authorize] GetUserById);
Kdy potlačit upozornění
Nepotlačujte upozornění na toto pravidlo. Chybně umístěné atributy můžou způsobit neočekávané chování za běhu.