2011-07-28 186 views
0

我正在構建WCF SOAP服務。當然,我會在服務上需要一些認證。WCF服務身份驗證方法

讀取此very helpful blog post表示要使用內置身份驗證點要求終端使用綁定wsHttp

如果我可以保證用戶可以通過基於WCF公開的元數據(基本上就是用C#編寫的客戶端,帶有Web服務引用的客戶端)通過客戶端與服務進行通信,那就沒有問題。不過,我不能保證這一點!

我仍然需要允許用戶使用原始(未加密的)XML進行通信。

所以,問題:

  1. 是否wsHttp綁定仍允許原始XML輸入?
  2. 如果不是,我會更聰明地去
    • 實施兩個單獨的認證點?一個用於原始XML輸入,另一個用於加密輸入 或
    • 允許來自wsHttp的輸入回退一些將與原始XML輸入共享的方法驗證?
  3. 允許用戶在原始XML請求中傳遞憑據是明智嗎?

編輯:這聽起來像我miscommunicated或誤解在原來的職位的東西,所以在這裏我將澄清我所說的「原始XML」的意思。

通過原始XML,我的意思只是SOAP數據包和附帶的HTTP頭 - 我可能會從soapUI或Fiddler發送。據我瞭解,當從WSDL生成客戶端(例如,在C#中)時,通過wsHttp綁定的消息被加密。

如果情況並非如此,那麼我會如何將相同類型的證書附加到原始XML(因爲需要更好的術語)請求,因爲我通過客戶端運行請求?它們是否作爲HTTP頭附加? SOAP信封中的XML元素?

回答

0

wsHttp是一個SOAP綁定,這意味着您的內容被包裝在一個SOAP信封中,可能包含與該信息相關的標題以及正在使用的各種WS- *規範。

我會問你爲什麼需要支持原始XML?今天的大多數平臺都支持SOAP消息傳遞,而SOAP的整體思想是提供不同平臺之間的互操作性。在大多數平臺上,開發SOAP客戶端與原始XML客戶端一樣簡單。在大多數情況下,僅僅是採用WSDL並生成客戶端的情況。如果你想使用標準設施如認證和信息加密,那麼這是一個更好的方法。

目前還沒有掛鉤可以對原始XML進行可互操作的身份驗證。你將不得不提出自己的機制來做到這一點,這將是非標準的。對於您的Web服務用戶,這意味着它可能需要比開發SOAP更多的開發工作。

+0

謝謝。這聽起來像是我在這裏誤傳或誤解了一些東西。我會編輯我原來的帖子來嘗試澄清 – AndyBursh