情况是这样的,部门有个Sliverlight项目,现在为安全考虑网站都要使用https,https证书等配置是在另一台Unix服务器做的,用户访问时会通过它中转到其ABC三个windows服务器,而SL项目是部署在win服务器的IIS上。SL项目的WCF服务使用basicHttpBinding,没有使用安全验证配置。最初配置完后,登录页面可以访问到,但WCF服务无法调用。为解决这个问题,网上找了关于wcf的https配置的文章:
1、http://www.cnblogs.com/coolkiss/archive/2010/07/14/1777077.html 和我的情况不太一样,不过也是一种应用场景,留着。
2、https://www.codeproject.com/Articles/36705/simple-steps-to-enable-HTTPS-on-WCF-WsHttp-bindi 很多文章里都提到了这个,老外的说明写的就是很细,下源码也不需要积分什么的,很棒。但我不需要配置IIS,情况还是不太一样。
3、http://timheuer.com/blog/archive/2008/10/14/calling-secure-services-with-silverlight-2-ssl-https.aspx 这个是最终解决问题的。由于网页资源和服务都是中转到win服务器的IIS的,所以服务不需要有任何改变,需要变的是客户端。只需要binding的安全模式由None改为Transport就可以了。
<basicHttpBinding> <binding name="BasicHttpBinding_IService1" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"> <security mode="Transport" /> </binding> </basicHttpBinding>
时间: 2024-10-07 18:41:07