Nguon: Microsoft Learn · .NET 8.0

ASP0001: Authorization middleware (phần mềm trung gian xác thực quyền) được cấu hình không đúng

Nguồn: ASP0001: Authorization middleware is incorrectly configured

-Giá trị
Rule ID (Mã quy tắc)ASP0001
Category (Danh mục)Usage (Sử dụng)
Fix is breaking or non-breaking (Sửa lỗi có phá vỡ tương thích không)Non-breaking (Không phá vỡ)

Nguyên nhân

Phát hiện lời gọi UseAuthorization bị đặt sai thứ tự trong code khởi động ứng dụng.

Mô tả quy tắc

Để authorization (phân quyền) hoạt động hiệu quả cho các route endpoint (điểm cuối định tuyến), lời gọi UseAuthorization phải xuất hiện giữa lời gọi UseRoutingUseEndpoints. Nếu không tuân thủ điều này, fallback policy (chính sách dự phòng), nếu được cấu hình, sẽ được dùng để phân quyền cho tất cả các request (yêu cầu).

Xét đoạn code sau:

csharp
app.UseStaticFiles();
app.UseAuthorization();

app.UseRouting();
app.UseEndpoints(endpoints =>
{
    endpoints.MapDefaultControllerRoute();
});

Lời gọi UseAuthorization xuất hiện trước UseRouting, do đó không nhận biết được endpoint.

Cách khắc phục vi phạm

Thay đổi thứ tự của lời gọi UseAuthorizationUseRouting:

csharp
app.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();

app.UseEndpoints(endpoints =>
{
    endpoints.MapDefaultControllerRoute();
});

Khi nào có thể bỏ qua cảnh báo

Có thể bỏ qua quy tắc này nếu lời gọi UseAuthorization được cố ý dùng để áp dụng fallback policy cho tất cả các request đầu ra, hoặc để phân quyền cho các tài nguyên không được định tuyến qua endpoint routing (định tuyến theo endpoint).