Pregunta

Soy bastante nuevo en el jabón, así que vaya fácil conmigo. Estoy tratando de configurar un servicio SOAP que acepte el siguiente formato de encabezado:

<soap:Header>
   <wsse:Security>
      <wsse:UsernameToken wsu:Id='SecurityToken-securityToken'>
         <wsse:Username>Username</wsse:Username>
         <wsse:Password>Password</wsse:Password>
         <wsu:Created>Timestamp</wsu:Created>
      </wsse:UsernameToken>
   </wsse:Security>
</soap:Header>

La aplicación en la que estoy incorporando este servicio es una aplicación web ASP.NET 3.5 y ya he configurado un punto final SOAP usando WCF. He configurado un servicio básico para asegurarme de que el WCF funcione y funcione bien (sin tener en cuenta el encabezado). Escuché que el formato anterior sigue a WS-Security, así que agregué wshttpbinding en la web.config:

<service name="Nexternal.Service.XMLTools.VNService"
         behaviorConfiguration="VNServiceBehavior">
  <!--The first endpoint would be picked up from the confirg
  this shows how the config can be overriden with the service host-->
  <endpoint address=""
            binding="wsHttpBinding"
            contract="Nexternal.Service.XMLTools.IVNService"/>
</service>

Descargué un arnés de prueba (SOAPUI) y pegué en un mensaje de prueba con el encabezado anterior y regresó con un error de solicitud de 400 malas.

... Por lo que vale, estoy ejecutando Visual Studio 2008 usando IIS7.

Siento que voy en círculos, por lo que cualquier ayuda sería increíble. Gracias por adelantado.

¿Fue útil?

Solución

Lo averigué. Pude personalizar lo que se generó en el WSDL usando MessageContracts (http://msdn.microsoft.com/en-us/library/ms730255.aspx). Esto me permitió especificar el formato del encabezado. Para cada nodo que contenía nodos infantiles, creé una clase para representar ese nodo y usé las herramientas de serialización de .NET (por ejemplo, XmlElementAttribute, XmlArrayAttribute, etc.) para especificar cómo esto debe reflejarse en el generado WSDL. DataContract También podría usarse aunque a mi entendimiento DataContract Era solo para formatos básicos y no te permitas profundizar en cómo está formateado.

Espero que esto ayude a cualquiera que tenga problemas similares.

Si alguien que sepa más sobre el jabón encuentra un defecto, hágamelo saber. La entrada es muy apreciada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top