2009-04-13 25 views
8

Tôi sắp sử dụng [Authorize] trên Hành động trả lại một phần lượt xem qua Ajax; nhưng tôi không nhận được hành vi tôi muốn (mặc dù hành vi của tôi mà tôi mong đợi).Làm cách nào để sử dụng tốt nhất thuộc tính [Ủy quyền] với Ajax và một phần Chế độ xem?

Dường như là ảnh dài; nhưng, có cách nào để mở rộng thuộc tính này để "thoát ra" của một cuộc gọi AJAX và chuyển hướng toàn bộ trang đến màn hình đăng nhập? (Tôi phản đối việc trả lại màn hình đăng nhập cho bất kỳ vị trí nào mà tôi đã đặt UpdateTargetId?)

Tôi nghĩ rằng tôi có một cách xử lý về cách thực hiện điều này trên mỗi cuộc gọi Ajax cụ thể, nhưng nếu tôi có thể tập trung bằng cách nào đó , nó sẽ tiết kiệm được rất nhiều mã ...

Trả lời

8

AuthorizeAttribute sẽ không làm điều này cho bạn, nhưng bạn có thể tập trung mã của mình. Tạo thuộc tính mới trả về mã trạng thái http 401 (không được ủy quyền) khi không có người dùng nào hiện đang đăng nhập. Trong tệp JavaScript được tham chiếu bởi site.master của bạn, xử lý sự kiện jQuery $ .ajaxError. Tìm http 401 trong mã trạng thái phản hồi và chuyển hướng đến trang đăng nhập của bạn thông qua JavaScript. Bây giờ bất kỳ cuộc gọi Ajax nào bạn thực hiện qua jQuery sẽ kết thúc ở đây nếu người dùng hiện tại không được ủy quyền.

Các vấn đề liên quan