Tôi có một ứng dụng MVC với khối sau bên trong Web.config:C# MVC: Cách ghi đè chuyển hướng xác thực được định cấu hình?
<authentication mode="Forms">
<forms loginUrl="~/Login" timeout="2880" />
</authentication>
Vì vậy, nếu người dùng yêu cầu một trang và ủy quyền thất bại, họ sẽ được chuyển đến ~/Đăng nhập.
Tốt và tôi cần nó cho hầu hết các bộ điều khiển của mình. Tuy nhiên, tôi có một bộ điều khiển mà tôi muốn bỏ qua quy tắc này. Làm thế nào tôi có thể cho phép các bộ điều khiển cụ thể bỏ qua quy tắc này?
Vấn đề của tôi là trong ứng dụng MVC của tôi (có nhiều bộ điều khiển), tôi có một bộ điều khiển nhất định lưu trữ một giao diện REST (không có nghĩa là để sử dụng trình duyệt). Vì bộ điều khiển này không có nghĩa là cho trình duyệt tiêu thụ, tôi không muốn nó gửi lại toàn bộ trang đăng nhập, (hoặc bất kỳ trang nào thực sự, chỉ là chuỗi hoặc một phần lượt xem.)
Lưu ý rằng tôi đang sử dụng tùy chỉnh [Authorize ...] thuộc tính trên hành động của tôi, và khi THESE thất bại, họ chuyển hướng đến một hành động Lỗi - nhưng, không may, hành động Lỗi của tôi (trả về một chuỗi ngắn) đang được chuyển hướng đến trang Đăng nhập vì điều này cài đặt cấu hình!
Tôi thấy chóng mặt khi cố gắng tìm ra điều này, tôi đang làm gì sai? Tôi có thể cung cấp thêm chi tiết nếu cần.
Bạn đang kế thừa từ AuthorizeAttribute hoặc implementating IAuthorizationFilter –
Thừa hưởng từ AuthorizeAttribute. –