2016-08-01 61 views
11

我正在閱讀文章和檢查exmaples,我看到Owin中間件與WebAPI DelegatingHandler使用相同:記錄傳入的請求,驗證標頭等。Owin中間件VS WebAPI DelegatingHandler

我唯一的理解是,Owin中間件在DelegatingHandlers之前來了。因此,如果您創建一個Owin中間件讓我們說授權用戶,那麼您可以更快地拒絕禁止的請求,而且可以在更低的級別上進行。

這兩者之間是否有區別,或者使用它們中的任何一個有什麼優缺點?

+0

這是一個很好的問題,應該引發一些關於微軟和其他在線資源無法澄清的主題的非常有用的答案。 「這種格式可能有太多可能的答案,或者對這種格式來說答案太好,」在這裏絕對不是這樣。請重新打開。 –

回答

3

我也在研究這個來找出有什麼區別。我可以想出一些可以幫助你的想法。我想他們的目的是一樣的,沒有太大的不同。但是DelegatingHandler是舊的機制比較owin Owin中間件:

  1. 這樣做的目的是區分服務器和應用程序。通過這樣做,你可以在管道中注入很多模塊(稱爲owinmiddleware)。
  2. 通過這樣做,您可以在webprep的HttpMessageHandler可以處理它之前,在httprequest的很早階段攔截請求。例如。您可以在創建http控制器之前讀取用於初始化依賴關係的數據。
  3. 通過模塊,您可以重用asp.net核心關注的中間件。

DelegatingHandler:

  1. 這是網頁API的一部分。在這個層面上,我們有HttpRequestMessage,HttpResponseMessage,所以我們可以很容易地與那些不是owin中間件(例如,你可以讀取請求消息體中的數據,而不用擔心我們這樣做是影響信息的東西)

  2. 通過操縱這樣做,實際上,你非常依賴web API管道。我並不是說你不能在重複使用它,但它可能會發生。

希望它能爲您提供有用的信息。

感謝,

0

的owin中間件和Web API之間的差異一個委託處理程序是 通過委託處理程序,您可以編寫特定航線自定義消息處理程序。

+0

這遠不是一個完整的答案。其他的區別是什麼?請詳細說明。 –