2009-11-09 16 views
5

Tôi có 2 thuộc tính mà tôi sử dụng trong các bộ điều khiển của ứng dụng MVC của tôi. AttributeA mở rộng System.Web.Mvc.AuthorizeAttribute và AttributeB mở rộng System.Web.Mvc.ActionFilterAttribute. Tôi muốn AttributeB luôn chạy trước.FilterAttribute Order không hoạt động

Tôi đã thử tất cả các kết hợp có thể có của Đơn đặt hàng dựa trên this article, nhưng AttributeA là luôn luôn chạy trước AttributeB. Có ai giúp được không?

Trả lời

6

Nếu bạn nhìn vào phương pháp System.Web.Mvc.ControllerActionInvoker.InvokeAction với phản xạ, bạn sẽ thấy tất cả các bộ lọc triển khai IAuthorizationFilter được gọi trước khi thuộc tính bắt nguồn từ ActionFilterAttribute và đó là do ủy quyền được thực hiện trước khi gọi hành động.

+0

Cảm ơn! Tôi chỉ cần nhấn này trên một IAuthorizationFilter đăng ký thông qua Ninject. –