web-dev-qa-db-fra.com

Comment passer les informations d'identification à un Webservice SOAP?

J'essaie d'appeler un service Web SOAP, mais le message d'erreur suivant s'affiche: Informations supplémentaires: le nom d'utilisateur n'est pas fourni. Spécifiez le nom d'utilisateur dans ClientCredentials.

Alors j'ai pensé que je pouvais simplement définir client.ClientCredentials sur une nouvelle instance de NetworkCredentials. Cependant, ClientCredentials est en lecture seule. Alors, comment puis-je transmettre ces informations pour accéder au service 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();

EDIT: Reliure:

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

Vous devez définir les informations d'identification sur le client, comme indiqué dans cet article MSDN :

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

36
Martin Costello