Tôi đang sử dụng Owin để lưu trữ Bộ điều khiển WebAPI. Tôi có phần mềm trung gian Owin thực hiện xác thực và đặt các thông tin sau nếu xác thực không thành công:Trang lỗi tùy chỉnh khi sử dụng Owin
context.Response.StatusCode = (int) HttpStatusCode.Unauthorized;
Khi điều này xảy ra, tôi muốn hiển thị trang HTML với một số hướng dẫn cho người dùng. (Giống như "Bạn cần phải đăng nhập.")
Hiện tại tôi chỉ chuyển hướng người dùng đến trang accessdenied.html, nhưng tôi muốn nếu quyền truy cập bị từ chối được hiển thị trực tiếp mà người dùng không được chuyển hướng (Tôi không muốn trường Vị trí trong trình duyệt web thay đổi).
Tôi cho rằng tôi có thể tạo HTML ngay lập tức và thêm nó vào phản hồi, ví dụ bằng cách đọc nội dung HTML từ tài nguyên.
Câu hỏi của tôi là: Có thể tự động hiển thị trang lỗi bị từ chối truy cập tùy chỉnh bằng cấu hình không? Trong ASP.NET "traditioinal", nó đã có thể thiết lập customErrors trong web.config, nhưng điều này không xuất hiện để làm việc với Owin selfhost:
<customErrors>
<error statusCode="401" redirect="~/accessdenied.html"/>
</customErrors>
Điều này sẽ không hoạt động đối với máy chủ, vì 'VirtualPathUtility' là một phần của' System.Web' và yêu cầu IIS hoạt động bình thường. –
Bạn nên sử dụng tùy chọn này thay thế: 'request.Uri.AbsoluteUri.Replace (request.Uri.PathAndQuery, request.PathBase +"/Home/Error ")' – tmoreira
Nếu bạn trả lời.Redirect, nó sẽ thay đổi mã trạng thái HTTP thành 302. –