There is an external secure service that I am consuming in my .net class by making a web reference to it and passing it the username token like so:
MyWebService objWS = new MyWebService();
UsernameToken token = new UsernameToken("User","Password", PasswordOption.SendPlainText);
objWS.RequestSoapContext.Security.Timestamp.TtlInSeconds = 60;
objWS.RequestSoapContext.Security.Tokens.Add(token);
objWS.RequestSoapContext.Security.MustUnderstand = false;
when I make service reference to the same service url and try to pass in the username and password using ClientCredentials it fails.
I have no idea about the external service. Any idea what could be wrong?
Thanks for your time…
The solution was to install WSE3 and in the proxy generated inherit from Microsoft.Web.Services3.WebServicesClientProtocol instead of the default System.Web.Services.Protocols.SoapHttpClientProtocol.
Then the service proxy object would get the Security property.
which I can then use to pass in the UsernameToken.
This is a hack and I have not found a better way to do it yet. Regenerating the proxy will always involve that extra step of having to manually edit the proxy again, as above.