web-dev-qa-db-ja.com

資格情報をSOAP Webサービスに渡す方法は?

SOAP webserviceを呼び出そうとしていますが、次のエラーが表示されます。追加情報:ユーザー名が指定されていません。ClientCredentialsでユーザー名を指定してください。

だから、client.ClientCredentialsをNetworkCredentialsの新しいインスタンスに設定できると思った。ただし、ClientCredentialsは読み取り専用です。それでは、この情報をWebサービスにアクセスするためにどのように渡すことができますか?

    myService.ServiceClient client = new myService.ServiceClient();
    // This won't work since its read only.                
    client.ClientCredentials = new System.Net.NetworkCredential("username", "password", "domain");
    string version = client.getData();

編集:バインド:

  <binding name="VersionHttpBinding">
    <security mode="TransportCredentialOnly">
      <transport clientCredentialType="Basic" />
    </security>
  </binding>
20
John Doe

このMSDNの記事 のように、クライアントに資格情報を設定する必要があります。

client.ClientCredentials.UserName.UserName = "my_user_name"; client.ClientCredentials.UserName.Password = "my_password";

36
Martin Costello