WCF - Consumir los servicios web (https/ssl/mtom/user/contraseña) - ¿Cómo configurar el cliente?
-
27-10-2019 - |
Pregunta
Necesito usar un servicio web que tenga los siguientes requisitos:
- https/ssl
- Mtom
- El usuario/contraseña debe especificarse en el encabezado SOAP
- 1 archivo binario (posiblemente grande) como carga útil
No controlo este servicio web y necesito consumirlo. Como soy nuevo en WCF, necesito ayuda con algunas cosas básicas. Mis preguntas son:
- Cuando agrego una referencia de servicio en VS2010, obtengo un basichttpbinding en la configuración. Creo que debo usar wshttpbinding, ¿estoy en lo cierto? ¿Dónde/cómo lo cambio/configuro? Directamente en la configuración?
- ¿Cómo configurar mi cliente para especificar el usuario/contraseña en el encabezado SOAP?
- ¿Cómo "adjuntar" un archivo binario?
Gracias
Solución
Si agrega referencia de servicio y no recibe ningún error, advertencia o cualquier sección comentada en el archivo de configuración que ya tenga lo que necesita. Solo usa el código que obtienes. La referencia creará proxy del cliente para usted y esto tendrá métodos necesarios para pasar datos binarios al servidor. Proxy también permite configurar las credenciales del cliente:
var proxy = new ServiceContractNameClient();
proxy.ClientCredentials.UserName.Name = "userName";
proxy.ClientCredentials.UserName.Password = "pwd";
var result = proxy.SendSomeVeryLargeData(new SomeDataContract() { Data = yourData });
Basichttpbinding admite ambas credenciales en encabezado de jabón y codificación MTOM.
Otros consejos
Por lo general, cuando consume un servicio web, no necesita cambiar la vinculación.
Es posible que deba especificar las credenciales del cliente.
Service1Client service = new Service1Client();
service.ClientCredentials.UserName.UserName = "user";
service.ClientCredentials.UserName.Password = "pass";
Ver este artículo.
Encontré un buen artículo sobre cómo configurar el cliente MTOM con WCF. Este es un tutorial muy básico. Espero que ayude.
http://mstecharchitect.blogspot.com/2009/01/wcf-with-mtom-message-ingoding.html