Share via


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 的呼叫是要在所有傳出要求上授權後援原則,或旨在授權未使用端點路由進行路由的資源,則隱藏此規則是安全的。