2009-07-23 48 views
5

我正在研究一個有幾個客戶端的應用程序 - 桌面,移動設備,Web門戶。我們正在轉向SOA架構,並將使用WCF。在Compact Framework上使用和保護WCF的最佳方式?

當談到在桌面和Web Portal端使用netTcp + transport/message security + Windows身份驗證(甚至是UsernameToken和一個自定義的UsernameValidator提供程序)時,WCF的故事非常棒。

它完全崩潰的地方在於緊湊的框架方面......它支持的WCF子集是如此的有限。我放棄了在頭文件中簡單地在整個SSL中使用basicHttp +用戶名/密碼,但似乎無法在緊湊的框架堆棧中添加頭文件(無OperationContextScope) - 這樣我就可以將用戶名/密碼包含爲EVERY的參數服務中的單一操作方法。

請告訴我我錯了,還有更好的辦法。

+0

我還沒有試過這個,但是你可以使用基於HTTPS的基本認證嗎? – 2009-07-23 14:03:18

+0

我還沒有找到通過CF上的WCF堆棧來實現這一點的方法 - 我認爲這就是爲什麼有些人選擇在緊湊框架上將WCF服務作爲傳統Web服務(Add Web Reference ...)來處理。 – 2009-07-23 14:31:50

回答

1

最好的辦法是公開一個符合WS-Security標準的WCF端點。

然後,您應該可以將這些標準用於基於消息的安全性(很可能使用X.509)。這裏的MSDN鏈接即可開始使用:

Messaging in the .NET Compact Framework

1

另一種解決方案是通過一票(讀:GUID)。

客戶端登錄(發送用戶名和密碼)。生成一個隨機生成的票證(guid再次),在服務器上緩存併發送回客戶端。然後這張票來回傳遞,而不是用戶名和密碼。

當然,所有這一切都假設你不只是想利用會話狀態。

但換句話說:我遇到了同樣的問題。它很爛。這是我如何解決這個問題的,因此它可用。

無論如何,另一個很好的參考是WCF Guidance for Mobile

相關問題