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

ตัวกรองประเภทต่าง ๆ ใน C# ASP.NET WebAPI มีอะไรบ้าง


ตัวกรองใช้เพื่อเติมตรรกะพิเศษในระดับต่างๆ ของการประมวลผลคำขอ 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 ตอบกลับที่แสดงด้านล่าง

ตัวกรองประเภทต่าง ๆ ใน C# ASP.NET WebAPI มีอะไรบ้าง