攔截器Filter 共有五種 Authorization Fileter、Resource Fileter、 Exception Filter 、Action Filter、 Result Filter
Exception Filter 當出現異常時進入此方法,可在這針對不同的異常做相關處理並返回指定數據,避免直接把錯誤暴露給用戶
Action Filter 設置
在方法前后會跳轉到OnActionExecuted和OnActionExecuting兩個方法,方便追蹤接口執行情況
Authonization Filter
權限控制過濾器 通過Authonization Filter 可以實現復雜的權限角色認證、登錄授權等操作
Resource Filter 進行資源緩存 、防盜鏈等操作。
Result Filter
結果過濾器,可以對結果進行格式化、大小寫轉換等一系列操作。
使用Result Filter 需要實現 IResult 抽象接口,接口要求實現
OnResultExecuting 方法和OnResultExecuted 方法
AOP 攔截器 即動態代理
C# 中可以用來做AOP 的開源類庫 有若干個,比較流行的: Castle DynamicProxy 、 Fody、Mono。Cecil
這些類庫之所以能夠實現AOP是因為他們有動態修改IL代碼的能力,這種能力又被稱為IL weaving。 還有的類庫把AOP和Dependency Injection 結合在了一起,通過服務器上注冊一個攔截器(Interceptor)的方式達到AOP的目的,例如:
Castle Windsor
Autofac