ASP0001:授权中间件配置不正确

价值
规则 ID ASP0001
类别 Usage
修复是中断修复还是非中断修复 Non-breaking

原因

在应用程序启动代码中检测到不按顺序调用UseAuthorization

规则说明

为了使授权对终结点路由生效,调用UseAuthorization应位于调用UseRoutingUseEndpoints之间。 如果没有,则回退策略(如果已配置)将用于授权所有请求。

考虑下列代码:

app.UseStaticFiles();
app.UseAuthorization();

app.UseRouting();
app.UseEndpoints(endpoints =>
{
    endpoints.MapDefaultControllerRoute();
});

调用 UseAuthorization 早于 UseRouting,因此无法识别终结点。

如何修复违规行为

调整 UseAuthorizationUseRouting 调用的执行顺序。

app.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();

app.UseEndpoints(endpoints =>
{
    endpoints.MapDefaultControllerRoute();
});

何时禁止显示警告

如果调用 UseAuthorization 旨在对所有传出请求实施回退策略,或者用于授权不通过终结点路由的资源,则可以禁用此规则。