I needed to connect to a remote Java WSRF Web Service having access only to the WSDL and login credentials. At first I tried using Visual Studio 2008, but found it doesn't support old style WSE so well, so had to revert to Visual Studio 2005, over which I installed Microsoft WSE 3.0.msi.
I then pointed wsdl.exe at the https://url?wsdl to generate the proxy class, which I put in the App_Code folder of a test web project. wsdl.exe caused the Service class to inherit from System.Web.Services.Protocols.SoapHttpClientProtocol. I had to replace this with Microsoft.Web.Services3.WebServicesClientProtocol to get the proper authentication interface.
I then had to manually add a wse3policyCache.conf file to get the policy setting intialized (see https://www-secure.symantec.com/connect/forums/newbie-help-adding-security-header-request-object#comment-3625021).
Then, following guidance in http://bytes.com/topic/net/answers/560786-how-add-soap-header-soap-message, I added a SoapHeader class as well as an attribute to the target proxy class method.
The SoapDocumentMethodAttribute Action attribute was set to a blank string so I had to set that to the fully qualified url of the method from the WSDL, i.e. .../PortType/TheMethod.
In the client code, I then just had to call myproxy.SetClientCredential(..), then I could use the proxy class without problems.
Providing Rest Clients Nearly as Bad as Publishing SOAP Contracts
-
Even still, many developers and architects have continued to emotionally
cling to the SOAP bad old days, wherein the contracts between a server and
a cli...
5 years ago