2011-10-06 22 views
1

WCF不支持使用HTTP身份驗證通過HTTP進行請求流式傳輸(又名流式上傳大數據)。我的第一個猜測是,這是因爲身份驗證握手導致流請求被髮送兩次到服務器。但是,緩衝模式下的大量請求也是如此,所以沒有意義。WCF不支持使用HTTP身份驗證通過HTTP傳輸請求的原因是什麼?

您可以在自定義ASP.NET http處理程序中輕鬆實現HTTP驗證請求流。如果你能控制客戶端,你甚至可以通過顯式的HTTP HEAD來預先驗證服務器,然後重新使用持久連接來通過HTTP POST完成實際的流請求,從而避免「多請求問題」。

因此,任何人都可以想到WCF不支持這個原因嗎? (比沒有時間等來做到這一點)

感謝

回答

1

的原因是,你必須首先發送整個請求(甚至流)來獲取HTTP 401,並按照安全性的握手,終於重新發送整個請求。因爲流式傳輸應該用於非常大的消息,所以這個過程可能非常緩慢,並且通過網絡增加了不必要的流量,所以MS可能做出了設計決定,根本不允許它。

帶有HEAD請求的技巧並未在WCF中實現。

+0

我想我可以接受這個答案:)希望會有一個配置覆蓋,以在下一個WCF版本中啓用它。出於好奇:你現在可以想出一種簡單的方法來覆蓋這個權利嗎?我的意思是在服務器端重寫一些方法來啓用請求流,並在客戶端代理重寫一些方法來插入我的HEAD請求之前的實際請求? –

相關問題