2010-08-16 12 views

Respuesta

0

Esto debería cubrir: http://msdn.microsoft.com/en-us/library/ms733775.aspx (Ver la sección de cliente)

+0

La pregunta se refiere específicamente sobre (HTTP) de autenticación básica. Su referencia vinculada solo muestra WSHttpBinding. WSHttpBinding usa credenciales de nombre de usuario + contraseña en el bloque de autenticación del encabezado de SOAP, que no es lo mismo que Autenticación básica (HTTP). – AlwaysLearning

0

Yo diría que es probable que dependerá de cómo el servicio web espera que usted pueda pasar la información. Después de todo, usted es solo el consumidor.

Habiendo dicho eso, es común que los servicios web tengan el ID de usuario y la contraseña pasados ​​en el encabezado SOAP.

Se puede hacer referencia a esta link para una implementación de ejemplo de este escenario

Muestra Jabón mensaje

<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> 
21

se configura la autenticación básica en el archivo de configuración? ¿Necesita pasar solo credenciales o también necesita transporte seguro (HTTPS)?

primer lugar usted necesita para establecer la unión a apoyar la autenticación básica

instalación de enlace HTTP:

<bindings> 
    <basicHttpBinding> 
    <binding name="BasicAuth"> 
     <security mode="TransportCredentialOnly"> 
     <transport clientCredentialType="Basic" /> 
     </security> 
    </binding> 
    </basicHttpBinding> 
</bindings> 

instalación de enlace HTTPS:

<bindings> 
    <basicHttpBinding> 
    <binding name="BasicAuthSecured"> 
     <security mode="Transport"> 
     <transport clientCredentialType="Basic" /> 
     </security> 
    </binding> 
    </basicHttpBinding> 
</bindings> 

extremo de cliente tiene que utilizar la configuración definida como:

<client> 
    <endpoint address="..." 
      name="..." 
      binding="basicHttpBinding" 
      bindingConfiguration="BasicAuth" 
      contract="..." /> 
</client> 

entonces usted tiene que pasar las credenciales al proxy:

proxy = new MyServiceClient(); 
proxy.ClientCredentials.UserName.UserName = "..."; 
proxy.ClientCredentials.UserName.Password = "..."; 
Cuestiones relacionadas