Sdílet prostřednictvím


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.