I have created a Web Service (using WSE 2.0, SP3) that has a method
ProcessRequest exposed. A client application calls the webservice using the
following code.
========================================
Dim loWebService As New MyWebServiceWse
loWebService.Url = "http://www.testwebservice.com/MyTest/MyTest.asmx"
loWebService.AllowAutoRedirect = True
System.Net.ServicePointManager.CertificatePolicy = New CertPolicy
Dim loContext As SoapContext = loWebService.RequestSoapContext
loContext.Security.Timestamp.TtlInSeconds = -1
'Instantiate a new UsernameToken object.
Dim loUserNameToken As New UsernameToken(txtUserID.Text, txtPassword.Text,
PasswordOption.SendHashed)
'Add the token to the SoapContext.
loContext.Security.Tokens.Add(loUserNameToken)
'Generate a signature using the username token,
'and add the signature to the SoapContext.
loContext.Security.Elements.Add(New MessageSignature(loUserNameToken))
'Call the Web method.
lsResponse = loWebService.ProcessRequest(rtbRequest.Text)
========================================
This code works fine when the URL is HTTP. But, on a HTTPS call, when the
SSL is enabled to this site, It first gives me Security.SecurityFault
exception (WSE563) - The computed password digest does not match the incoming
username token. Then after that, for the subsequent requests, I get a
Destination unreachable WSE816 error - The header must match the value of the
incoming message's HTTP request.
How can I get this fixed? Is there anything different that I need to do in
the WebService code and/or the Client application code to handle HTTPS
request.
Thanks,
R