ASP0001:授权中间件配置错误
值 | |
---|---|
规则 ID | ASP0001 |
类别 | 使用情况 |
修复是中断修复还是非中断修复 | 非中断 |
原因
在应用程序启动代码中检测到对 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
的调用旨在授权对所有传出请求的回退策略,或者旨在授权未使用终结点路由进行路由的资源,则禁止显示此规则是安全的。