共用方式為


ASP0001:授權中間件設定不正確

價值
規則識別碼 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 是為了在所有傳出要求上授權後備策略,或是為了授權未使用端點路由的資源,則抑制此規則是安全的。