Estoy intentando llamar a un servicio web Java desde una aplicación web MVC3 .NET usando WSE 3.0.Cómo agrego un atributo EncodingType al elemento Nonce de un UsernameToken en WSE 3.0 (.NET)
Sin embargo, el servicio web requiere un atributo "EncodingType" en el elemento Nonce del UsernameToken. A continuación se presenta un sobre de muestra SOAP que funciona correctamente con este servicio web Java:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:v1="http://schema.mydomain.org/sms/v1_0">
<soap:Header>
<wsse:Security soap:mustUnderstand="true" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>myUsername</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">myPassword</wsse:Password>
<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">XQkp6oYc3DRv41cxkSTW8w==</wsse:Nonce>
<wsu:Created>2011-09-13T20:50:08.355Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</soap:Header>
<soap:Body>
<v1:ping/>
</soap:Body>
</soap:Envelope>
siguiente es el sobre SOAP generada a partir del proxy que VS2010 producido (capturado en Fiddler):
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<env:Header xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<wsse:Security env:mustUnderstand="true">
<wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="SecurityToken-111f922b-72c1-4057-bce4-f6555552ce6a">
<wsse:Username>myUsername</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">myPassword</wsse:Password>
<wsse:Nonce>qYse3Lor9sAJ9pKPefgkKQ==</wsse:Nonce>
<wsu:Created>2011-09-13T20:50:38Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</env:Header>
<soap:Body>
<v1:ping/>
</soap:Body>
</soap:Envelope>
Si este atributo falta, este servicio web devuelve, "Se proporcionó un token de seguridad no válido (Se produjo un error al procesar un token de nombre de usuario)"
¿Cómo agrego un atributo EncodingType?
Hola, estoy teniendo este problema exacto. Es bueno saber que hay una bandera, sería mejor si también mencionas qué bandera, ahora todavía tengo que mirar. – toongeorges