| 价值 | |
|---|---|
| 规则 ID | ASP0005 |
| 类别 | Usage |
| 修复是中断修复还是非中断修复 | Non-breaking |
原因
在路由处理程序终结点中,特性被应用于方法定义,而不是路由处理程序。
规则说明
声明终结点时,应将属性应用于委托参数,以便有效。 例如,以下代码示例中的 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);
何时禁止显示警告
不禁止显示此规则发出的警告。 错放的属性可能会导致运行时出现意外行为。