2011-06-12 60 views
0

我需要使用具有以下要求的web服務:WCF - 使用Web服務(https/ssl/mtom/user/password) - 如何配置客戶端?

  • HTTPS/SSL
  • MTOM
  • 用戶/密碼需要在SOAP標頭中指定
  • 1(可能很大)二進制文件作爲有效載荷

我不控制此Web服務並需要使用它。由於我是WCF的新手,我需要一些基本的幫助。我的問題是:

  1. 當我在VS2010中添加服務引用時,我得到一個basichttp綁定在配置中。我想我必須使用wshttpbinding,對嗎?在哪裏/如何更改/配置它?直接在配置中?
  2. 如何配置我的客戶端在肥皂頭中指定用戶/密碼?
  3. 如何「附加」二進制文件?

感謝

回答

1

如果您添加服務引用,並且沒有收到任何錯誤,警告或配置文件中的任何註釋部分,則您已擁有所需的內容。只需使用你得到的代碼。該引用將爲您創建客戶端代理,並且這將具有將二進制數據傳遞到服務器所需的方法。代理還允許設置客戶端憑據:

var proxy = new ServiceContractNameClient(); 
proxy.ClientCredentials.UserName.Name = "userName"; 
proxy.ClientCredentials.UserName.Password = "pwd"; 
var result = proxy.SendSomeVeryLargeData(new SomeDataContract() { Data = yourData }); 

BasicHttpBinding支持SOAP標頭和MTOM編碼中的憑證。

+0

這樣做,用戶/密碼將在肥皂頭? – KindaNewbie 2011-06-12 22:19:19

+0

由綁定定義。如果您使用HTTPS + SOAP頭添加了對WCF服務的服務引用以進行身份​​驗證,則應該已經爲您定義了它。您可以檢查配置中的綁定是否使用'' – 2011-06-12 22:33:33

1

通常當你使用Web服務,您不需要更改綁定。

您可能需要指定客戶端憑據。

Service1Client service = new Service1Client(); 
    service.ClientCredentials.UserName.UserName = "user"; 
    service.ClientCredentials.UserName.Password = "pass"; 

請參閱this文章。

相關問題