ASP .Net MVC एप्लिकेशन में फ़िल्टर तीन स्तरों में लागू किए जा सकते हैं।
- कार्रवाई विधि स्तर
- नियंत्रक स्तर
- वैश्विक स्तर
कार्रवाई विधि स्तर
क्रिया विधि स्तर पर लागू किए गए फ़िल्टर केवल विशेष रूप से उस क्रिया विधि के लिए काम करेंगे।
using System.Web.Mvc; namespace DemoMvcApplication.Controllers{ public class HomeController : Controller{ [Authorize] //Action Method Level public string Index(){ return "Index Invoked"; } } }
नियंत्रक स्तर
नियंत्रक स्तर के फ़िल्टर सभी क्रिया विधियों पर लागू होते हैं। निम्नलिखित फ़िल्टर होमकंट्रोलर की सभी क्रिया विधियों पर लागू होते हैं, लेकिन अन्य नियंत्रकों पर नहीं।
using System.Web.Mvc; namespace DemoMvcApplication.Controllers{ [Authorize] //Controller Level public class HomeController : Controller{ public string Index1(){ return "Index1 Invoked"; } public string Index2(){ return "Index2 Invoked"; } } }
वैश्विक स्तर
डिफ़ॉल्ट FilterConfig.RegisterGlobalFilters() पद्धति का उपयोग करके Global.asax.csfile के Application_Start ईवेंट में वैश्विक स्तर के फ़िल्टर प्रदान किए जाते हैं। वैश्विक फ़िल्टर किसी एप्लिकेशन के सभी नियंत्रक और क्रिया विधियों पर लागू होंगे।
public class MvcApplication : System.Web.HttpApplication{ protected void Application_Start(){ AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); } } public class FilterConfig{ public static void RegisterGlobalFilters(GlobalFilterCollection filters){ filters.Add(new HandleErrorAttribute()); filters.Add(new AuthorizeAttribute()); } }