Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
| Waarde | |
|---|---|
| Regel-ID | ASP0005 |
| Categorie | Usage |
| De oplossing veroorzaakt brekende of niet-brekende problemen | Non-breaking |
Oorzaak
Er is een kenmerk toegepast op een methodedefinitie in plaats van de route-handler in een route-handler-eindpunt.
Beschrijving van regel
Wanneer een eindpunt wordt gedeclareerd, moeten kenmerken worden toegepast op de gemachtigdeparameter om effectief te zijn. Het kenmerk Autoriseren in het volgende codevoorbeeld is bijvoorbeeld niet ingesteld op het geregistreerde eindpunt:
app.MapGet("/todos/{id}", GetTodoById);
[Authorize]
Todo GetTodoById(int id)
{
...
}
Het kenmerk moet worden geplaatst op de parameter van de route-handler, zoals wordt weergegeven in de volgende code:
app.MapGet("/todos/{id}", [Authorize] GetTodoById);
Todo GetTodoById(int id)
{
...
}
Hoe schendingen op te lossen
Als u een schending van deze regel wilt oplossen, moet u ervoor zorgen dat eindpuntkenmerken worden toegepast op de parameter voor de route-handler:
app.MapGet("/todos/{id}", [Authorize] (int id) => {});
app.MapGet("/users/{id}", [Authorize] GetUserById);
Wanneer waarschuwingen onderdrukken
Een waarschuwing van deze regel niet onderdrukken. Verkeerd geplaatste kenmerken kunnen leiden tot onverwacht gedrag tijdens runtime.