estou com um problema com o WSE 3.0: para testar a criptografia em um web service, defini a política do servidor com as seguintes configurações:
- autenticação anônima (por simplicidade) - proteção da mensagem: sign, encrypt, encrypt signature; Establish Secure Session marcado em Secure Session - certificado do servidor: WSE2QuickStartServer (Local Machine)
A política do cliente ficou como: - autenticação anônima (por simplicidade)
- proteção da mensagem: sign, encrypt, encrypt signature; Establish Secure Session marcado em Secure Session
- certificado do servidor: WSE2QuickStartServer que está em Current User
Coloquei o atributo Policy com o nome da política na classe do web service e chamei SetPolicy() no proxy passando o nome da politica do cliente. Tanto no servidor como no cliente setei Allow Test Root. No entanto, ao chamar o web service do cliente, apareceu o seguinte erro:
Unhandled Exception: Microsoft.Web.Services3.ResponseProcessingException: WSE910 : An error happened during the processing of a response message, and you can fin d the error in the inner exception. You can also find the response message in t he Response property. ---> System.InvalidOperationException: Security requiremen ts are not satisfied because the security header is not present in the incoming message. at Microsoft.Web.Services3.Security.SecureConversationClientReceiveSecurityFi lter.ValidateMessageSecurity(SoapEnvelope envelope, Security security) (...)
Algúem tem alguma déia do que mais eu posso estar fazendo errado?
Embora não tenha identificado o que fiz de diferente, consegui colocar o WSE pra funcionar. Minha dúvida agora é: é possível rodar o WSE junto com alguma outra SOAP extension? Tenho uma SOAP extension responsável por fazer validação do XML de acordo com um esquema, mas ela só funciona com desativo o uso da política de segurança do WSE. Tive que desenvolver dois web services, um responsável pela segurança, usando WSE, e outro responsável pela validação, de forma que o primeiro comunica-se com o segundo. Mas essa não deve ser a melhor solução. Alguém conhece uma solução melhor?