Theo mặc định trong Startup.Auth.cs tập tin, sẽ có một cái gì đó như thế này:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Main/Account/Login"),
CookieName = "OwinAuthCookie",
});
Khi bạn kích hoạt Basic Authentication trong IIS, đây là những gì sẽ xảy ra:
- IIS Basic Authentication Module thấy rằng không có tiêu đề xác thực, vì vậy nó trả về một 01.238..
- Phản hồi không được trả lại ngay lập tức, nhưng được xử lý bởi Owin.
- Owin thấy yêu cầu nhận được
401 (Unauthorized) Response
, do đó, nó chuyển hướng đến cấu hình LoginPath
.
- Trình duyệt của bạn xử lý chuyển hướng, cố gắng mở URL mới và chúng tôi quay lại điểm 1. Và đó là vòng lặp.
Điều bạn có thể làm là nhận xét thuộc tính LoginPath trong mã ở trên. Điều này sẽ dừng vòng lặp chuyển hướng, nhưng cũng có thể (nhưng không phải, tùy thuộc vào việc triển khai của bạn) phá vỡ xác thực cho người dùng ứng dụng.
Điều cuối cùng tôi đã làm là triển khai một phần mềm trung gian nhỏ của Owin và tự mình thực hiện Xác thực cơ bản.
Các liên kết này có thể hữu ích:
Tôi đã làm điều này quá. Tôi đã tạo một trang cho người dùng xác thực và vô hiệu hóa Xác thực cơ bản. – Fabio