2013-01-31 15 views
0

我試圖連接到使用wsHttpBinding和Windows身份驗證的Web服務。如果我配置用戶名,密碼和域,我可以使用WCFStorm進行連接。如何連接到在純XML中使用Windows身份驗證的WCF SOAP Web服務?

我需要使用SOAP信封進行身份驗證,因爲我無權訪問諸如c#等編程語言。

基本上,我所能做的就是創建一個包含SOAP信封的POST請求。我如何構建SOAP信封以便Windows身份驗證可以工作?

+0

,我發現正在使用某種形式的.NET代碼示例所有。 – spyderman4g63

+0

我相信Windows身份驗證是通過實際SOAP POST之前的客戶端和服務之間的「握手」過程發生的。即使您使用非Windows身份驗證過程,也必須在對該服務進行POST之前對其進行驗證。 WCF支持非Windows身份驗證(HTTP Basic,Forms,...),但您的客戶端也需要支持這些。 –

+0

我認爲這是問題。我不確定我可以使用cURL命令行工具支持wsHttpBinding。我可能必須啓用basichttpbinding。 – spyderman4g63

回答

0

如果您確實需要使用SOAP POST進行身份驗證,則完全有可能。但是您需要在WCF中實現ServiceAuthorizationManager類,並將其與用於託管端點的給定ServiceHostFactory關聯。

但是我會假設WCF服務是一個黑匣子給你,因爲你說你「無法訪問編程語言,如C#[原文如此]」。我將假定.net框架方面不在你的控制之下。

我打算假設您有完全訪問客戶端的權限,但不能使用.NET進行遠程調用。

你要做的是將Kerberos或NTLM身份驗證標頭放入HTTP請求中。通常所知的Windows身份驗證實際上就是這兩種協議之一。 現在,NTLM在配置方面是一個更簡單的協議,如果您的編程環境支持它,它將是我的建議協議。 但是Kerberos得到了更廣泛的支持。

至於如何在您使用的框架中使用帶有HTTP的NTLM/Kerberos。沒有進一步的信息,我無法幫助你。

您可能會發現以下有趣: http://docs.oracle.com/javase/6/docs/technotes/guides/net/http-auth.html

+0

基本上,我可以使用的是命令行中的cURL實用程序。雖然我不確定是否可以只用cURL來做到這一點。 – spyderman4g63

+0

快速谷歌搜索顯示你可以。 http://honglus.blogspot.hk/2010/06/use-script-to-fetch-url-protected-by.html – Aron

相關問題