是一个具有安全端点和非安全双HttpBinding端点的wcf服务吗?

时间:2016-08-12 10:37:19

标签: web-services wcf security

我正在努力弄清楚如何在我的WCF服务中的某个端点上启用安全性。

我试图弄清楚是否有可能拥有1个wcf服务,其中有多个端点具有不同的安全配置。

Endresult应该是具有以下端点的服务:

  • wsHttpBinding(非安全)
  • wsHttpBinding(安全)
  • wsDualHttpBinding(非安全)

我想知道这是否可行,因为:

  • 其中一个现已被“保护”,因此我需要将baseAddress移至https。
  • 我说的WCF书说wsDualHttpBinding不可能使用https / ssl

我是否需要在其他服务上开始托管我的wsDualHttpBinding?

1 个答案:

答案 0 :(得分:0)

您可以向一个服务添加多个端点,而每个端点负责其配置,包括安全性。

设置主持人:

ServiceHost host=new ServiceHost(typeof(CalcService));
host.AddServiceEndpoint(typeof (ICalc), new NetNamedPipeBinding("internalBinding"),
            "net.pipe://127.0.0.1:5000/CalcService");
host.AddServiceEndpoint(typeof(ICalc), new BasicHttpBinding("secureBinding"), 
            "http://127.0.0.1:5001/CalcService");

这里的配置是从App.config获得的,看起来像这样

 <bindings>

  <basicHttpBinding>
    <binding name="secureBinding" openTimeout="00:01:00"  closeTimeout="00:01:00" sendTimeout="00:30:00" receiveTimeout="00:30:00"
            maxBufferSize="2147483647"
            maxBufferPoolSize="2147483647"
            maxReceivedMessageSize="2147483647"
            transferMode="Streamed">
      <readerQuotas maxDepth="2147483647"
              maxStringContentLength="2147483647"
              maxArrayLength="2147483647"
              maxBytesPerRead="2147483647"
              maxNameTableCharCount="2147483647" />
      <security mode="Transport"/>
    </binding>
  </basicHttpBinding>
  <netNamedPipeBinding>
    <binding name="internalBinding" openTimeout="00:01:00"  closeTimeout="00:01:00" sendTimeout="00:30:00" receiveTimeout="00:30:00">
      <security mode="None"/>
    </binding>
  </netNamedPipeBinding>
</bindings>