閱讀了關於asp.net核心middlware之後,我很困惑我應該何時使用過濾器以及何時應該使用中間件,因爲它們似乎可以實現相同的目標。 什麼時候應該使用中間件代替配件?asp.net核心中間件vs過濾器
22
A
回答
16
在頻道9有一個關於此的視頻:ASP.NET Monsters #91: Middleware vs. Filters。總結視頻:
請求的執行開始,我們有一箇中間件和另一個middlerware,把它想象成「娃娃裏面的俄羅斯娃娃」,最終路由中間件踢進去然後請求進入MVC管道。因此如果你不需要MVC的上下文(假設你關心流程和執行,比如響應頭部的一些預路由機制等),那麼使用中間件。
但是,如果您需要MVC的上下文,並且您想針對操作進行操作,請使用過濾器。
18
中間件在ASP.NET Core級別上運行,並且可以處理進入應用程序的每個請求。
另一方面,MVC過濾器僅適用於訪問MVC的請求。
因此,例如,如果我想強制所有請求都必須通過HTTPS完成,那麼我將不得不爲此使用中間件。如果我製作了MVC過濾器,用戶仍然可以請求通過HTTP的靜態文件。
但是另一方面,在MVC控制器中記錄請求持續時間的東西可能絕對是一個動作過濾器。
相關問題
- 1. 中間件過濾asp.net核心REST方法
- 2. ASP.NET核心OWIN中間件
- 3. ASP.Net核心 - 從中間件
- 4. 核心音頻過濾器
- 5. 實體框架核心1.0 Asp.Net核心中間件或過濾器的mvc工作單元
- 6. 過濾掉屬性的ASP.NET核心API
- 7. 覆蓋ASP.NET中的控制器/操作中的全局操作過濾器核心MVC 1.0.1(ASP.NET核心1.1)
- 8. asp.net核心溫莎VS ConfigureServices
- 9. ASP.NET 2.0的核心中間件認證
- 10. ASP.NET核心 - MVC上的中間件
- 11. CIHueAdjust核心圖像過濾器設置
- 12. 核心圖像過濾器應用於
- 13. 帶核心圖像過濾器的EAGLContext
- 14. 刪除核心圖形過濾器
- 15. 秩序ASP.NET全局過濾器的核心
- 16. 核心數據過濾
- 17. 核心數據。過濾nstableview
- 18. ASP.NET核心中間件將參數傳遞給控制器
- 19. ASP.NET核心:通過CallContextServiceLocator.Locator.ServiceProvider
- 20. asp.net mvc全局vs類過濾器
- 21. Asp.net核心EF在2015年VS
- 22. VS代碼asp.net核心調試失敗
- 23. Asp.Net核心 - MVC Vs WebAPI路由差異
- 24. VS對於Mac和ASP.NET核心
- 25. 上傳的WebAPI ASP.NET核心JSON VS FORMDATA
- 26. 如何在Asp.Net核心自定義授權過濾器中返回未授權
- 27. ASP.Net MVC:如何通過重寫URL的中間件在ASP.NET核心
- 28. Django:object_set vs過濾器
- 29. Servlet vs過濾器
- 30. 核心圖像灰度過濾器和棕褐色過濾器iOS
本文檔針對的是具體問題。 https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/filters#using-middleware-in-the-filter-pipeline – Nkosi