-4

I want to create a web service that does the same as the given web service depending on the service description language only. I managed to create the same exact service, except for this part of the meta-data:

<wsp:Policy wsu:Id="BasicHttpsBinding_policy">
<wsp:ExactlyOne>
<wsp:All>
<sp:TransportBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
<wsp:Policy>
<sp:TransportToken>
<wsp:Policy>
<sp:HttpsToken RequireClientCertificate="false"/>
</wsp:Policy>
</sp:TransportToken>
<sp:AlgorithmSuite>
<wsp:Policy>
<sp:Basic256/>
</wsp:Policy>
</sp:AlgorithmSuite>
<sp:Layout>
<wsp:Policy>
<sp:Strict/>
</wsp:Policy>
</sp:Layout>
</wsp:Policy>
</sp:TransportBinding>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>

What is that? and how it can be generated in the service description language?

Nour
  • 5,252
  • 3
  • 41
  • 66

1 Answers1

0

I think you search for "External Policy Attachment" described here: http://www.w3.org/TR/ws-policy-attach/#ExternalPolicyAttachment

To have the <wsp:Policy.. on your WSDL doc you should have the HTTPS binding on your web config file first.

so if you are using https then you could add a base address in you service node:

 <baseAddresses>
     <add baseAddress="http://yourdomain.com/"/>
     <add baseAddress="https://yourdomain.com/"/>
 </baseAddresses>

then add basic HTTPS binding node:

 <basicHttpsBinding>
    <binding name="BasicHttpsBinding_Name">
      <security>
        <transport clientCredentialType="None" />
      </security>
    </binding>
  </basicHttpsBinding>

also you should have end-point decleared like below:

 <endpoint address="" binding="basicHttpsBinding" 
            bindingConfiguration="BasicHttpsBinding_Name"
            contract="NameSpace.Name" name="BasicHttpsBinding_Name" />

and by compiling your service the policy node will appear on you WSDL.
Also see some solution here
I hope it helps you.

Roman Marusyk
  • 23,328
  • 24
  • 73
  • 116