ASP0001: Authorization middleware (phần mềm trung gian xác thực quyền) được cấu hình không đúng
| - | 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 UseRouting và UseEndpoints. 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:
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 UseAuthorization và UseRouting:
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).