Bộ lọc được sử dụng để đưa thêm logic vào ở các cấp độ khác nhau của xử lý WebApi Frameworkrequest. Bộ lọc cung cấp một cách giải quyết các mối quan tâm xuyên suốt (ghi nhật ký, ủy quyền và bộ nhớ đệm). Bộ lọc có thể được áp dụng cho một phương thức hành động hoặc điều khiển theo cách khai báo hoặc theo chương trình. Dưới đây là các loại bộ lọc trong Web API C #.
Bộ lọc xác thực -
Bộ lọc xác thực giúp chúng tôi xác thực chi tiết người dùng. Trong bộ lọc xác thực, chúng tôi viết logic để kiểm tra tính xác thực của người dùng.
Bộ lọc ủy quyền -
Bộ lọc Ủy quyền chịu trách nhiệm kiểm tra Quyền truy cập của Người dùng. Họ triển khai theIAuthorizationFilterinterface trong khuôn khổ.
Bộ lọc hành động -
Các bộ lọc hành động được sử dụng để thêm logic bổ sung trước hoặc sau khi thực thi các phương thức hành động.
Bộ lọc Ngoại lệ -
Một bộ lọc ngoại lệ được thực thi khi một phương thức bộ điều khiển ném bất kỳ ngoại lệ nào không phải là ngoại lệ HttpResponseException. Loại TheHttpResponseException là một trường hợp đặc biệt, vì nó được thiết kế đặc biệt để quay lại phản hồi HTTP.
Ghi đè bộ lọc -
Bộ lọc ghi đè được sử dụng để tùy chỉnh hành vi của bộ lọc khác cho phương thức hành động riêng lẻ. Đôi khi có một yêu cầu như bất kỳ bộ lọc nào chúng ta đang sử dụng mà chúng ta cần ghi đè. Giả sử chúng tôi đã áp dụng bộ lọc ở cấp bộ điều khiển, có một hành động trong bộ điều khiển mà chúng tôi không muốn sử dụng bộ lọc để chúng tôi có thể sử dụng phiên bản ghi đè của bộ lọc.
Bộ lọc thường được áp dụng theo ba cách dưới đây.
-
Ở cấp Kiểm soát viên
-
Ở cấp ActionMethod
-
Ở cấp độ Toàn cầu (WebApi.Config.cs)
Hãy để chúng tôi xem ví dụ về việc triển khai bộ lọc ủy quyền và cách nó hoạt động.
Ví dụ
using System.Web.Http; namespace DemoWebApplication.Controllers{ public class DemoController : ApiController{ [Authorize] public IHttpActionResult Get(){ return Ok(); } } }
Vì chúng tôi đã thêm thuộc tính ủy quyền trên phương thức hành động, nên ủy quyền thích hợp như mã thông báo mang, khóa API, OAuth, v.v., sẽ được sử dụng để truy cập phương thức hành động. Truy cập trái phép sẽ dẫn đến 401 Trái phép phản hồi được hiển thị bên dưới.