Delen via


ASP0005: plaats het kenmerk niet op de methode die wordt aangeroepen door de routehandler lambda

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.