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