ตัวกรองใช้เพื่อเติมตรรกะพิเศษในระดับต่างๆ ของการประมวลผลคำขอ WebApi Framework ตัวกรองช่วยแก้ปัญหาข้ามปัญหา (การบันทึก การอนุญาต และการแคช) สามารถใช้ตัวกรองกับวิธีดำเนินการหรือตัวควบคุมด้วยวิธีการประกาศหรือแบบเป็นโปรแกรม ด้านล่างนี้คือประเภทของตัวกรองใน Web API C#
ตัวกรองการตรวจสอบสิทธิ์ −
ตัวกรองการตรวจสอบสิทธิ์ช่วยให้เราตรวจสอบรายละเอียดผู้ใช้ได้ ในตัวกรองการตรวจสอบสิทธิ์ เราเขียนตรรกะสำหรับตรวจสอบความถูกต้องของผู้ใช้
ตัวกรองการอนุญาต −
ตัวกรองการอนุญาตมีหน้าที่ตรวจสอบการเข้าถึงของผู้ใช้ พวกเขาใช้อินเทอร์เฟซ IAuthorizationFilterface ในเฟรมเวิร์ก
ตัวกรองการดำเนินการ −
ตัวกรองการดำเนินการใช้เพื่อเพิ่มตรรกะพิเศษก่อนหรือหลังการดำเนินการตามวิธีการดำเนินการ วิธีการ OnActionExecuting และ OnActionExecuted ใช้เพื่อเพิ่มตรรกะของเราก่อนและหลังการดำเนินการตามวิธีการ
ตัวกรองข้อยกเว้น −
ตัวกรองข้อยกเว้นจะทำงานเมื่อวิธีการควบคุมส่งข้อยกเว้นที่ไม่สามารถจัดการได้ซึ่งไม่ใช่ข้อยกเว้น HttpResponseException ประเภท HttpResponseException เป็นกรณีพิเศษ เนื่องจากได้รับการออกแบบมาโดยเฉพาะเพื่อส่งคืนการตอบกลับ HTTP
ลบล้างตัวกรอง −
ตัวกรองการลบล้างใช้เพื่อปรับแต่งการทำงานของตัวกรองอื่นสำหรับวิธีการดำเนินการเฉพาะบุคคล บางครั้งมีข้อกำหนดเช่นตัวกรองที่เรามีอยู่ที่เราจำเป็นต้องแทนที่ สมมติว่าเราใช้ตัวกรองที่ระดับตัวควบคุม แต่มีการดำเนินการภายในตัวควบคุมที่เราไม่ต้องการใช้ตัวกรอง เราจึงสามารถใช้ตัวกรองเวอร์ชันแทนที่ได้
โดยทั่วไปจะใช้ตัวกรองในสามวิธีด้านล่าง
-
ในระดับผู้ควบคุม
-
ในระดับ ActionMethod
-
ในระดับสากล (WebApi.Config.cs)
ให้เรามาดูตัวอย่างการใช้งานตัวกรองสิทธิ์และวิธีการทำงาน
ตัวอย่าง
using System.Web.Http; namespace DemoWebApplication.Controllers{ public class DemoController : ApiController{ [Authorize] public IHttpActionResult Get(){ return Ok(); } } }
เนื่องจากเราได้เพิ่มแอตทริบิวต์การอนุญาตเหนือวิธีดำเนินการ จึงควรใช้การให้สิทธิ์ที่เหมาะสม เช่น โทเค็นผู้ถือ คีย์ API OAuth เป็นต้น เพื่อเข้าถึงวิธีดำเนินการ การเข้าถึงโดยไม่ได้รับอนุญาตจะส่งผลให้ 401 Unauthorized ตอบกลับที่แสดงด้านล่าง