我有一個來自web服務的wsdl,我生成了wcf代理。沒問題。從wcf客戶端調用需要基本http認證的web服務
但是我無法弄清楚如何傳遞用戶名和密碼。該webservice需要基本認證 - 只有用戶名和密碼。
任何幫助?
我有一個來自web服務的wsdl,我生成了wcf代理。沒問題。從wcf客戶端調用需要基本http認證的web服務
但是我無法弄清楚如何傳遞用戶名和密碼。該webservice需要基本認證 - 只有用戶名和密碼。
任何幫助?
這應包括它:http://msdn.microsoft.com/en-us/library/ms733775.aspx (見客戶端部分)
我會說這是可能取決於Web服務如何期望你傳遞的信息。畢竟,你只是消費者。
話雖如此,Web服務通常在SOAP Header中傳遞用戶標識和密碼。
您可以參考這個link對於這種情況
樣品SOAP消息的樣本實現
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<AUTHHEADER xmlns="http://tempuri.org/">
<USERNAME>string</USERNAME>
<PASSWORD>string</PASSWORD>
</AUTHHEADER>
</soap:Header>
<soap:Body>
<SENSITIVEDATA xmlns="http://tempuri.org/" />
</soap:Body>
</soap:Envelope>
在配置文件中配置基本身份驗證?你需要通過憑證還是需要安全傳輸(HTTPS)?
首先,你需要設置綁定到支持基本身份驗證
設置爲HTTP綁定:
<bindings>
<basicHttpBinding>
<binding name="BasicAuth">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Basic" />
</security>
</binding>
</basicHttpBinding>
</bindings>
設置爲HTTPS綁定:
<bindings>
<basicHttpBinding>
<binding name="BasicAuthSecured">
<security mode="Transport">
<transport clientCredentialType="Basic" />
</security>
</binding>
</basicHttpBinding>
</bindings>
客戶端點必須使用定義的配置如:
<client>
<endpoint address="..."
name="..."
binding="basicHttpBinding"
bindingConfiguration="BasicAuth"
contract="..." />
</client>
然後,你必須憑據傳遞到代理:
proxy = new MyServiceClient();
proxy.ClientCredentials.UserName.UserName = "...";
proxy.ClientCredentials.UserName.Password = "...";
問題專門詢問(HTTP)基本認證。您的鏈接參考僅用於演示WSHttpBinding。 WSHttpBinding在SOAP信封頭的auth塊中使用用戶名+密碼憑證,這與(HTTP)基本驗證不同。 – AlwaysLearning 2016-06-07 00:29:48