Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
| Wert | |
|---|---|
| Regel-ID | ASP0005 |
| Kategorie | Usage |
| Korrektur ist blockierend oder nicht-blockierend | Non-breaking |
Ursache
Ein Attribut wurde auf eine Methodendefinition anstelle des Routenhandlers in einem Routenhandlerendpunkt angewendet.
Regelbeschreibung
Wenn ein Endpunkt deklariert wird, sollten Attribute auf den Delegatparameter angewendet werden, um effektiv zu sein. Beispielsweise wird das Authorize-Attribut im folgenden Codebeispiel nicht für den registrierten Endpunkt festgelegt:
app.MapGet("/todos/{id}", GetTodoById);
[Authorize]
Todo GetTodoById(int id)
{
...
}
Das Attribut muss wie im folgenden Code dargestellt auf den Parameter "Route-Handler" gesetzt werden:
app.MapGet("/todos/{id}", [Authorize] GetTodoById);
Todo GetTodoById(int id)
{
...
}
Wie man Verstöße behebt
Um einen Verstoß gegen diese Regel zu beheben, stellen Sie sicher, dass Endpunktattribute auf den Routenhandlerparameter angewendet werden:
app.MapGet("/todos/{id}", [Authorize] (int id) => {});
app.MapGet("/users/{id}", [Authorize] GetUserById);
Wann sollten Warnungen unterdrückt werden?
Unterdrücken Sie keine Warnung dieser Regel. Falsch platzierte Attribute können zu unerwartetem Verhalten zur Laufzeit führen.