Sdílet prostřednictvím


ASP0005: Neumisťujte atribut na metodu volanou lambda výrazem obslužné rutiny trasy

Hodnota
Identifikátor pravidla ASP0005
Kategorie Použití
Oprava je destruktivní nebo nedestruktivní Nezlomitelný

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 parametru 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 atributy koncového bodu jsou použity na parametru obslužné trasy.

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

Kdy potlačit upozornění

Nepotlačujte varování z tohoto pravidla. Chybně umístěné atributy můžou způsobit neočekávané chování za běhu.