发送加密数据wcf - windows phone

时间:2013-04-03 19:50:06

标签: wcf windows-phone-7

我正在使用WCF服务与DB通信。我的WP7.5应用程序通过WCF将数据发送到DB。我使用basichttpbinding,因为WP只支持这一个。我想以加密形式发送数据。我知道,https用于这些目的。 这是我的web.config:

<system.serviceModel>
<behaviors>
  <serviceBehaviors>
    <behavior name="serviceBehavior">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true" />
    </behavior>
  </serviceBehaviors>
</behaviors>
<bindings>
  <basicHttpBinding>
      <binding name="baseBinding" >
      </binding>
  </basicHttpBinding>
</bindings>
<services>
  <service behaviorConfiguration="serviceBehavior" name="TestWCF.WcfNotificationService.WcfNotificationService">
    <endpoint address="base" binding="basicHttpBinding" bindingConfiguration="baseBinding"
      contract="TestWCF.WcfNotificationService.IWcfNotificationService" />
    <host>
      <timeouts openTimeout="00:05:00" />
    </host>
  </service>
</services>

我已经google了,发现我必须将securityMode设置为传输,但是当我尝试在WP应用程序中更新服务引用时,它会给我一个例外。你能帮助我,如何实现这一点,数据将被加密? 非常感谢!

修改

这是错误:

  

无法找到与具有绑定BasicHttpBinding的端点的https方案匹配的基址。注册的基地址方案是[http]。

当我在客户端更新服务引用时,我得到了这个。

2 个答案:

答案 0 :(得分:1)

您的配置似乎有问题。需要配置BasicHttpBinding以支持https。例如,请查看此处:http://blog.adnanmasood.com/2008/07/16/https-with-basichttpbinding-note-to-self/

如前所述,你需要改变:

<basicHttpBinding>
      <binding name="baseBinding" >
      </binding>
 </basicHttpBinding>

<basicHttpBinding>
      <binding name="baseBinding" >
          <security mode="Transport">
              <transport clientCredentialType="None"/>
           </security>
      </binding>
 </basicHttpBinding>

另外,改变

<serviceMetadata httpGetEnabled="true"/>

<serviceMetadata httpsGetEnabled="true"/>

答案 1 :(得分:0)

如果您在IIS中托管WCF服务,请确保您使用SSL证书配置了https绑定。查看this以了解如何配置此功能。如果您是自托管服务,请确保添加如下基本地址:

        <host>
          <baseAddresses>
            <add baseAddress="https://[machineName]/Service.svc"/>
          </baseAddresses>
        </host>