我有我的网站(https:// example.com)。这是一个互联网应用
- 用户可以从上述网站注册 - 已完成
- 注册用户将收到一封电子邮件,并将舔下载Windows客户端(WPF或Windows窗体客户端) - 已完成
- 此WPF或Windows窗体客户端将使用example.com上托管的WCF(部署在Internet中)。我在内部传递消息正文中的UserName和Pwd .-已完成
醇>
现在我需要知道的是如何在消息级别和传输级别实现安全性。
- 客户端请求应在消息级别加密
- 应在消息级别加密WCF服务器响应
- 客户端和服务器之间的通信应为SSL
醇>
我已经从msdn.microsoft.com/en-us/library/ff648902.aspx
- 如何:在WCF从Windows窗体调用中使用带有用户名身份验证的WsHttpBinding和TransportWithMessageCredentials
- 如何:在Windows窗体的WCF调用中使用用户名身份验证与SQL Server成员资格提供程序和邮件安全性
- 如何:在Windows窗体的WCF调用中使用证书身份验证和邮件安全性
醇>
阅读上面的内容后,我很困惑我需要使用哪一个。请建议哪一个是我的方案满足上述三个安全条件的最佳选择
如果我使用TransportWithMessageCredential
,我是否会在消息级别和传输级别看到加密?
答案 0 :(得分:0)
TransportWithMessageCredentials是一个加密/安全选项,当您的WCF Web服务框由执行SSL / HTTPs加密工作的负载均衡器或反向代理构成时。
在"正常"在您的WCF Web服务盒位于逻辑DMZ内的情况下,WCF主机的加密和客户端身份验证检查只需一步完成,并且"裸露"请求内容(未加密且没有客户端身份验证凭据)由您的服务处理。
但是,如果您使用负载均衡器或反向代理执行加密(出于多种原因这是一个好主意),请使用" normal"传输加密将向您的WCF Web服务传送没有客户端身份验证凭据的消息。
因此,TransportWithMessageCredentials所做的是在邮件正文中保留客户端身份验证凭据,以便在RP / LB解密您的邮件之后,您的WCF Web服务可以在第二步处理您的客户端身份验证请求。
请?基本上,如果您使用F5负载均衡器或某些反向代理在WCF Web服务处理之前加密/解密您的邮件,则需要TransportWithMessageCredentials。无负载均衡器或反向代理,不需要TransportWithMessageCredentials。
希望澄清事情。