Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
| Ценность | |
|---|---|
| Идентификатор правила | ASP0005 |
| Категория | Использование |
| Исправление является разрушающим или неразрушающим. | Неразрывный |
Причина
Атрибут был применен к определению метода вместо обработчика маршрутов в конечной точке обработчика маршрутов.
Описание правила
Когда конечная точка объявлена, атрибуты должны применяться к параметру делегата для того чтобы быть эффективными. Например, атрибут Authorize в следующем примере кода не задан в зарегистрированной конечной точке:
app.MapGet("/todos/{id}", GetTodoById);
[Authorize]
Todo GetTodoById(int id)
{
...
}
Атрибут должен быть помещен в параметр обработчика маршрутов, как показано в следующем коде:
app.MapGet("/todos/{id}", [Authorize] GetTodoById);
Todo GetTodoById(int id)
{
...
}
Устранение нарушений
Чтобы устранить нарушение этого правила, убедитесь, что атрибуты конечной точки применяются к параметру обработчика маршрутов:
app.MapGet("/todos/{id}", [Authorize] (int id) => {});
app.MapGet("/users/{id}", [Authorize] GetUserById);
Когда следует подавлять предупреждения
Не подавляйте предупреждение, вызванное этим правилом. Неуместные атрибуты могут привести к непредвиденному поведению во время исполнения.
ASP.NET Core