什么是中間件
中間件Middleware是所有請求都會執行的,適合用在權限校驗,一些公用字段處理,例如分頁信息獲取.asp.net core 提供了IApplicationBuilder
接口來讓把中間件注冊到asp.net的管道請求當中去,中間件是一個典型的AOP應用。下面是一個微軟官方的一個中間件管道請求圖:

可以看到,每一個中間件都都可以在請求之前和之后進行操作。請求處理完成之后傳遞給下一個請求。
什么是Filter
ActionFilter?是需要在Controller的具體方法[action]上加上相應的自定義Filter才會執行,也就是說針對一些特定要求,比如數據緩存,post請求時的數據校驗,可以寫一些通用的ActionFilter,在需要有數據緩存或者校驗的action上加上特性就可以做到針對特定請求的一些個性化處理.Filter總共有五種,Authorization Filter,Resource Filter,Exception Filter,Action Filter,Result Filter
工作流程
客戶端程序發起請求->中間件Middleware
-> ActionFilter
->Controller
[Action
]
使用場景總結
Filter使用場景
處理業務相關的內容,如輸出結果的格式化,ViewModel數據驗證
MiddleWare使用場景
和業務耦合不大的情況下,如身份驗證,Session存儲,日志記錄等