【发布时间】:2010-06-17 11:44:19
【问题描述】:
情况:
- 我们有带有 IIS7 (.NET4) 的 Windows 2008 Web 服务器
- 我们可以通过默认的 HTTPS (443) 端口仅与网络服务器通信
- 服务器上有一个 ASP.NET 网站,该服务是网站代码的一部分。
- 一些客户端(支持 WCF 的桌面应用程序)希望与我们的新 WCF Web 服务进行通信
- 双方之间的消息大小可以是 100 - 400 kb
- 我们希望保留 IIS 的 WCF 服务部分。
- 在客户端,我们请求自定义用户名和密码以连接到我们的服务
- 有更长的会话,后面有更多的数据库进程
- 还有快速的短会话 - 例如来自客户端的 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 的会话吗?
【问题讨论】:
标签: wcf session c#-4.0 wshttpbinding