ASP0001: 授權中介軟體設定不正確
值 | |
---|---|
規則識別碼 | 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
的呼叫是要在所有傳出要求上授權後援原則,或旨在授權未使用端點路由進行路由的資源,則隱藏此規則是安全的。