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