2013-04-17 31 views
6

Tôi có ứng dụng web .Net MVC (Không phải WebAPI) và tôi muốn chặn tất cả các cuộc gọi đến ứng dụng web trước khi chúng tới bộ điều khiển, kiểm tra giá trị trong tiêu đề yêu cầu và thực hiện điều gì đó nếu giá trị không hiện tại (chẳng hạn như trình bày 404). Cách lý tưởng để làm điều này là gì? Hãy ghi nhớ đây không phải là một ứng dụng Web API, chỉ là một ứng dụng web đơn giản.Web MVC. Net: Chặn tất cả các cuộc gọi trước khi đến bộ điều khiển?

+1

thể trùng lặp của [ASP.NET MVC 4 đánh chặn tất cả các yêu cầu gửi đến] (http://stackoverflow.com/questions/11726848/asp-net-mvc-4-intercept-all-incoming-requests) –

+0

Sau khi bạn kiểm tra giá trị, bạn sẽ chuyển yêu cầu đến bộ điều khiển? – Floremin

Trả lời

5

Tùy thuộc vào những gì cụ thể bạn muốn làm, bạn có thể sử dụng một bộ điều khiển mặc định mà tất cả các bộ điều khiển khác mở rộng. Bằng cách đó, bạn có thể ghi đè OnActionExecuting hoặc Initialize và thực hiện kiểm tra ở đó.

public class ApplicationController : Controller 
{ 
    protected override void OnActionExecuting(ActionExecutingContext filterContext) 
    { 
     //do your stuff here 
    } 
} 

public class YourController : ApplicationController 
{ 

} 
3

Bạn đang tìm kiếm các bộ lọc hành động toàn cầu.

Tạo một lớp kế thừa ActionFilterAttribute, ghi đè OnActionExecuting() để thực hiện xử lý của bạn, và thêm một trường hợp vào bộ sưu tập bộ lọc toàn cầu trong Global.asax.cs (bên RegisterGlobalFilters())

+0

Sử dụng cách tiếp cận này, bạn có thể chỉ định tuyến đường nào bạn muốn thực hiện điều này không? – ggderas

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