Pergunta

Eu sou muito novo em sabão, então fique com calma comigo. Estou tentando configurar um serviço de sabão que aceita o seguinte formato de cabeçalho:

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

O aplicativo em que estou incorporando esse serviço é um aplicativo da web ASP.NET 3.5 e já configurei um terminal SOAP usando o WCF. Eu configurei um serviço básico para garantir que o WCF funcione e funcione bem (desconsiderando o cabeçalho). Ouvi dizer que o formato acima segue a segurança do WS, então adicionei o WSHTTPBINDING no 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>

Baixei um chicote de teste (SOAPUI) e colei em uma mensagem de teste com o cabeçalho acima e voltei com um erro de solicitação de 400 ruins.

... Pelo que vale a pena, estou executando o Visual Studio 2008 usando o IIS7.

Sinto que estou indo em círculos, então qualquer ajuda seria incrível. Desde já, obrigado.

Foi útil?

Solução

Descobriu isso. Consegui personalizar o que foi gerado no WSDL usando MessageContracts (http://msdn.microsoft.com/en-us/library/ms730255.aspx). Isso me permitiu especificar o formato do cabeçalho. Para cada nó que continha nós filhos, criei uma classe para representar esse nó e usei as ferramentas de serialização do .NET (por exemplo, XmlElementAttribute, XmlArrayAttribute, etc.) para especificar como isso deve ser refletido no gerado WSDL. DataContract também poderia ser usado, embora pelo meu entendimento DataContract foi apenas para formatos básicos e não permite que você realmente mergulhe em como é formatado.

Espero que isso ajude qualquer pessoa a ter problemas semelhantes.

Se alguém que souber mais sobre sabão encontrar uma falha, por favor me avise. A entrada é muito apreciada.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top