Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

ระดับใดบ้างที่สามารถใช้ตัวกรองใน ASP .Net MVC C# ได้


ในตัวกรองแอปพลิเคชัน 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()); }}