2013-04-17 13 views
6

.Net MVC web uygulamasına (WebAPI değil) sahibim ve denetleyiciye ulaşmadan önce web uygulamasına yapılan tüm çağrıları engellemek, istek başlıklarında bir değer olup olmadığını kontrol etmek ve değer yoksa bir şey yapmak istiyorum. mevcut (404 sunulması gibi). Bunu yapmanın en iyi yolu nedir? Bu bir Web API uygulaması değil, sadece basit bir web uygulaması olduğunu unutmayın.MVC Web .Net: Denetleyiciye ulaşmadan önce tüm çağrıları engelle?

+1

olası yinelenen [ASP.NET MVC 4 kesişmesine gelen tüm istekler] (http://stackoverflow.com/questions/11726848/asp-net-mvc-4-intercept-all-incoming-requests) –

+0

Değeri kontrol ettikten sonra, isteğinizi kontrol cihazına iletecek misiniz? – Floremin

cevap

5

sizin işlem gerçekleştirmek için OnActionExecuting() geçersiz, ActionFilterAttribute devralan bir sınıf oluşturun ve (RegisterGlobalFilters() içinde) Global.asax.cs küresel filtre koleksiyonuna bir örneğini ekleyin Diğer tüm denetleyicilerin uzandığı bir varsayılan denetleyici kullanabilir. Böylece OnActionExecuting veya Initialize'u geçersiz kılabilir ve kontrolünüzü orada yapabilirsiniz.

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

public class YourController : ApplicationController 
{ 

} 
ait
3

Genel eylem filtreleri arıyorsunuz. , Yapmak istediğiniz spesifik şeye bağlı sizi

+0

Bu yaklaşımı kullanarak, bunu yapmak istediğiniz yolları belirtebilir misiniz? – ggderas

İlgili konular