情况:
- 我们有带有 IIS7 的 Windows 2008 Web 服务器,(.NET4)
- 我们只能通过默认的 HTTPS (443) 端口 与网络服务器通信
- 服务器上托管了一个 ASP.NET 网站,该服务是网站代码的一部分。
- 一些客户端(支持 WCF 的桌面应用程序)希望与我们的新 WCF Web 服务进行通信
- 双方之间的消息大小可以是 100 - 400 kb
- 我们希望保留 IIS 的 WCF 服务部分。
- 在客户端,我们请求自定义用户名和密码以连接到我们的服务
- 有更长的会话,后面有更多的 DB processign
- 并且有快速的短会话——比如来自客户端的 ping
- 客户端密码存储在我们的网络服务器上(来自 DB) - 客户端应根据这些密码进行身份验证。
问题:
1. 从这些限制来看,最好的协议是什么?
2. 你会默认使用会话吗?
3.首先尝试了这个绑定(它可以工作,但是没有会话支持)
<!--define a SOAP binding-->
<wsHttpBinding>
<binding name="DefaultSOAPBasedHTTPSBinding" maxReceivedMessageSize="400000">
<readerQuotas maxArrayLength="102400" />
<security mode="Transport">
<transport clientCredentialType="None" />
</security>
</binding>
</wsHttpBinding>
要启用会话:
<wsHttpBinding>
<binding name="DefaultSOAPBasedHTTPSBinding" maxReceivedMessageSize="400000">
<readerQuotas maxArrayLength="102400" />
<reliableSession enabled="true" />
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Basic" />
<message clientCredentialType="Certificate"/>
</security>
</binding>
</wsHttpBinding>
我的感觉是这种传输和消息安全性太多了——我的意思是我们真的需要这个来允许与 wsHttpBinding 的会话吗?