j'ai créé un service avec une telle configuration de liaison:WCF serveur WS-Security
<bindings>
<customBinding>
<binding name="DefaultBinding">
<textMessageEncoding messageVersion="Soap12" />
<httpTransport />
</binding>
</customBinding>
</bindings>
Et quand mon service reçoit un message de départ comme celui-ci:
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope">
<s:Header>
<Security s:mustUnderstand="1" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<UsernameToken>
<Username>
</Username>
<Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">...</Password>
<Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">KWVa4abCrEemOMT55VEZkgIAAAAAAA==</Nonce>
<Created xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">2013-08-28T13:29:05.966Z</Created>
</UsernameToken>
</Security>
...
Il produit une erreur:
Le l'en-tête 'Sécurité' de l'espace de noms 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd' n'a pas été compris ...
J'ai aussi essayé:
<wsHttpBinding>
<binding name="DefaultBinding">
<security mode="Message" />
</binding>
</wsHttpBinding>
Comment puis-je traiter cet en-tête ou de l'ignorer?
Mise à jour
Comme je l'ai compris que j'ai besoin nom d'utilisateur sur le transport non sécurisé, donc j'ai essayé:
<customBinding>
<binding
name="DefaultBinding">
<textMessageEncoding messageVersion="Soap12" />
<security authenticationMode="UserNameOverTransport" allowInsecureTransport="True">
</security>
<httpTransport>
</httpTransport>
</binding>
</customBinding>
J'ai essayé aussi CUB:
<bindings>
<clearUsernameBinding>
<binding name="myClearUsernameBinding" messageVersion="Soap12">
</binding>
</clearUsernameBinding>
</bindings>
deux se termine par erreur sur le client: une erreur s'est produite lors de la vérification de la sécurité du message. Mais cela fonctionne avec le client de test CUB. Quel pourrait être le problème?
L'enveloppe de CUB est header.
Client de test header.
Oui, il est Validé pour le client d'envoyer le nom d'utilisateur/pass sur http sans ssl. À ce stade, le service doit l'accepter sans vérifier. J'ai essayé CUB, cela a fonctionné avec le client de test, mais échoué avec le client existant: {"Une erreur est survenue lors de la vérification de la sécurité du message."} J'ai comparé les en-têtes d'evelope: CUB a les éléments suivants: Timestamp, Expires, UsernameToken, Nom d'utilisateur , Mot de passe Mine a: Nom d'utilisateur, mot de passe, Nonce, Créé – therg
s'il vous plaît publier des exemples d'un travail et un message de fialing –
maintenant je vois que vous l'avez publié. vous devez activer wcf trace sur le serveur pour voir l'erreur exacte. http://blogs.msdn.com/b/madhuponduru/archive/2006/05/18/601458.aspx –