ASP .Net MVC 응용 프로그램 필터는 세 가지 수준으로 적용할 수 있습니다.
- 실행 방법 수준
- 컨트롤러 수준
- 글로벌 수준
실행 방법 수준
작업 방법 수준에서 적용된 필터는 특히 해당 작업 방법에 대해서만 작동합니다.
using System.Web.Mvc; namespace DemoMvcApplication.Controllers{ public class HomeController : Controller{ [Authorize] //Action Method Level public string Index(){ return "Index Invoked"; } } }
컨트롤러 레벨
컨트롤러 수준 필터는 모든 작업 메서드에 적용됩니다. 다음 필터는 HomeController의 모든 작업 메서드에 적용할 수 있지만 다른 컨트롤러에는 적용되지 않습니다.
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()); } }