| 价值 | |
|---|---|
| 规则 ID | ASP0001 |
| 类别 | Usage |
| 修复是中断修复还是非中断修复 | Non-breaking |
原因
在应用程序启动代码中检测到不按顺序调用UseAuthorization。
规则说明
为了使授权对终结点路由生效,调用UseAuthorization应位于调用UseRouting和UseEndpoints之间。 如果没有,则回退策略(如果已配置)将用于授权所有请求。
考虑下列代码:
app.UseStaticFiles();
app.UseAuthorization();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapDefaultControllerRoute();
});
调用 UseAuthorization 早于 UseRouting,因此无法识别终结点。
如何修复违规行为
调整 UseAuthorization 和 UseRouting 调用的执行顺序。
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapDefaultControllerRoute();
});
何时禁止显示警告
如果调用 UseAuthorization 旨在对所有传出请求实施回退策略,或者用于授权不通过终结点路由的资源,则可以禁用此规则。