¿Cómo pasar credenciales a un servicio web SOAP?

Estoy intentando llamar a un servicio web SOAP, pero recibo el error: Información adicional: No se proporciona el nombre de usuario. Especifique el nombre de usuario en ClientCredentials.

Así que pensé que podría establecer client.ClientCredentials en una nueva instancia de NetworkCredentials. Sin embargo, ClientCredentials es de solo lectura. Entonces, ¿cómo puedo pasar esta información para acceder al servicio 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();

EDITAR: Enlace:

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

Respuestas a la pregunta(1)

Su respuesta a la pregunta