C# ASP.NET WebAPI 中有哪些不同型別的過濾器?
過濾器用於在 WebApi 框架請求處理的不同級別注入額外的邏輯。過濾器提供了一種處理橫切關注點(日誌記錄、授權和快取)的方法。過濾器可以透過宣告式或程式設計方式應用於操作方法或控制器。以下是 Web API C# 中的過濾器型別。
身份驗證過濾器 −
身份驗證過濾器幫助我們驗證使用者詳情。在身份驗證過濾器中,我們編寫用於檢查使用者真實性的邏輯。
授權過濾器 −
授權過濾器負責檢查使用者訪問許可權。它們實現框架中的 IAuthorizationFilter 介面。
操作過濾器 −
操作過濾器用於在操作方法執行之前或之後新增額外邏輯。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();
}
}
}由於我們在操作方法上添加了授權屬性,因此應使用適當的授權方式(如 bearer 令牌、API 金鑰、OAuth 等)來訪問操作方法。未經授權的訪問將導致顯示如下所示的 **401 未授權** 響應。

廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP