ในตัวกรองแอปพลิเคชัน ASP .Net MVC สามารถใช้ได้สามระดับ
- ระดับวิธีการดำเนินการ
- ระดับคอนโทรลเลอร์
- ระดับสากล
ระดับวิธีการดำเนินการ
ตัวกรองที่ใช้ในระดับวิธีการดำเนินการจะทำงานเฉพาะกับวิธีการดำเนินการนั้นเท่านั้น
ใช้ System.Web.Mvc;namespace DemoMvcApplication.Controllers { คลาสสาธารณะ HomeController:Controller { [อนุญาต] // Action Method Level ดัชนีสตริงสาธารณะ () { return "Index Invoked"; } }}
ระดับคอนโทรลเลอร์
ตัวกรองระดับตัวควบคุมถูกนำไปใช้กับวิธีการดำเนินการทั้งหมด ตัวกรองต่อไปนี้ใช้ได้กับวิธีการดำเนินการทั้งหมดของ HomeController แต่ไม่สามารถใช้กับตัวควบคุมอื่นได้
ใช้ System.Web.Mvc;namespace DemoMvcApplication.Controllers { [Authorize] //Controller Level HomeController คลาสสาธารณะระดับตัวควบคุม { สตริงสาธารณะ Index1 () { ส่งคืน "Index1 Invoked"; } สตริงสาธารณะ Index2 () { ส่งคืน "Index2 Invoked"; } }}
ระดับสากล
ตัวกรองระดับโกลบอลมีให้ในเหตุการณ์ Application_Start ของ global.asax.csfile โดยใช้เมธอด FilterConfig.RegisterGlobalFilters() ที่เป็นค่าเริ่มต้น ตัวกรองร่วมจะถูกนำไปใช้กับตัวควบคุมและวิธีการดำเนินการทั้งหมดของแอปพลิเคชัน
<ก่อน> MvcApplication คลาสสาธารณะ:System.Web.HttpApplication{ ป้องกันเป็นโมฆะ Application_Start(){ AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters (GlobalFilters.Filters); RouteConfig.RegisterRoutes (RouteTable.Routes); BundleConfig.RegisterBundles (BundleTable.Bundles); }} คลาสสาธารณะ FilterConfig { โมฆะคงที่สาธารณะ RegisterGlobalFilters (ตัวกรอง GlobalFilterCollection) { ตัวกรอง เพิ่ม (ใหม่ HandleErrorAttribute ()); filter.Add(ใหม่ AuthorizeAttribute()); }}