Tôi có ứng dụng ASP.NET MVC3 với Xác thực Windows được triển khai cho IIS6. Khi người dùng được xác thực nhấp vào liên kết mà họ không được phép xem, họ được nhắc nhập tên người dùng và mật khẩu của họ (trong hộp thoại trình duyệt, không phải trang), như mong đợi.Lấy trang trống thay vì trang lỗi 401
Tuy nhiên, sau khi nhấp vào Hủy hoặc nhập thông tin đăng nhập không hợp lệ ba lần, thay vì nhìn thấy trang 401 trái phép, tôi thấy một trang trắng trống.
Nhìn vào Fiddler, có ba yêu cầu/phản hồi sau khi nhấp vào Hủy. Dưới đây là những tóm tắt phản ứng và tiêu đề:
nhắn ASP.NET Truy cập bị từ chối (401,2)
HTTP/1.1 401 Unauthorized ngày: Thứ Sáu, 20 Tháng 7 2012 14:34:21 GMT máy chủ : Microsoft-IIS/6.0 WWW-Authenticate: Negotiate WWW-Authenticate: NTLM X-Powered-By: ASP.NET X-ASPNET-Version: 4.0.30319 cache-Control: private Content-type: text/html; charset = utf-8 Content-Length: 1701 Proxy-Hỗ trợ: Dựa trên Phiên-Xác thực
IIS Bạn không được phép xem trang này (401,1)
HTTP/1.1 401 Unauthorized trang nội dung Thời lượng: 1539 Content-type: text/html server: Microsoft-IIS/6.0 WWW-Authenticate: NTLM TlRMTVNTUAACAAAADAAMADgAAAAF ... (bỏ qua cho ngắn gọn) X-Powered-By: ASP.NET ngày: Thứ Sáu, 20 Tháng 7 năm 2012 14:34:21 GMT Hỗ trợ proxy: Dựa trên phiên xác thực
phản ứng Rỗng
HTTP/1.1 401 Unauthorized ngày: Thứ Sáu, 20 Tháng Bảy 2012 14:34:21 GMT Server: Microsoft-IIS/6.0 WWW-Authenticate: Negotiate WWW-Authenticate: NTLM X-Powered-By: ASP.NET X-AspNet-Phiên bản: 4.0.30319 X-AspNetMvc-Phiên bản: 3.0 Bộ nhớ cache-Điều khiển: riêng Nội dung dài: 0 Hỗ trợ proxy: Phiên dựa trên xác thực
Làm cách nào để hiển thị trang này hiển thị trang lỗi 401?
Cập nhật 1:
Dưới đây là phần lỗi web.config của tôi.
<customErrors mode="RemoteOnly" defaultRedirect="~/Error" />
Tôi cũng đang sử dụng HandleErrorAttribute
.
Tôi nghi ngờ rằng IIS sẽ trả lại trang trống thay vì ASP.NET, nhưng tôi không chắc chắn cách chứng minh điều đó.
Cập nhật 2:
Điều này thật thú vị.Nếu tôi làm mới trang trống, tôi thấy thông báo ASP.NET Access bị từ chối.
Chỉ cần đoán nhưng có phải cố gắng chuyển hướng chúng trở lại trang Tên người dùng và Mật khẩu do chúng vẫn không được ủy quyền không? Và vì nó đã nghĩ rằng nó xử lý người dùng xem không có gì để hiển thị? –
Đây không phải là trang đăng nhập, hộp thoại đăng nhập trình duyệt của nó. – jrummell
Ah xin lỗi đã không nhìn thấy phần đó. Sau lần thử thứ ba bạn chuyển hướng chúng đến trang 401? Nếu không thì bạn vẫn ở trên cùng một trang nhưng bạn không nhận được bất kỳ nội dung nào được hiển thị vì máy chủ không gửi bất kỳ nội dung nào. –