ASP0001:授权中间件配置错误

规则 ID ASP0001
类别 使用情况
修复是中断修复还是非中断修复 非中断

原因

在应用程序启动代码中检测到对 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 的调用旨在授权对所有传出请求的回退策略,或者旨在授权未使用终结点路由进行路由的资源,则禁止显示此规则是安全的。