Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
| Valore | |
|---|---|
| ID della regola | ASP0005 |
| Categoria | Uso |
| La modifica è dirompente o non dirompente | Nessuna interruzione |
Causa
Un attributo è stato applicato a una definizione di metodo anziché al gestore di route in un endpoint del gestore di route.
Descrizione della regola
Quando un endpoint viene dichiarato, gli attributi devono essere applicati al parametro delegato per essere efficaci. Ad esempio, l'attributo Authorize nell'esempio di codice seguente non è impostato sull'endpoint registrato:
app.MapGet("/todos/{id}", GetTodoById);
[Authorize]
Todo GetTodoById(int id)
{
...
}
L'attributo deve essere inserito nel parametro del gestore di route, come illustrato nel codice seguente:
app.MapGet("/todos/{id}", [Authorize] GetTodoById);
Todo GetTodoById(int id)
{
...
}
Come correggere le violazioni
Per correggere una violazione di questa regola, assicurarsi che gli attributi dell'endpoint vengano applicati al parametro del gestore di route:
app.MapGet("/todos/{id}", [Authorize] (int id) => {});
app.MapGet("/users/{id}", [Authorize] GetUserById);
Quando eliminare gli avvisi
Non eliminare un avviso da questa regola. Gli attributi posizionati in modo non riuscito possono comportare un comportamento imprevisto in fase di esecuzione.