একটি 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()); } }