Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 具有WsHttpBinding的WCF security TransportWithMessageCredentials_.net_Wcf_Ws Security - Fatal编程技术网

.net 具有WsHttpBinding的WCF security TransportWithMessageCredentials

.net 具有WsHttpBinding的WCF security TransportWithMessageCredentials,.net,wcf,ws-security,.net,Wcf,Ws Security,我有我的网站https://example.com。这是一个互联网应用程序 用户可以从上述网站注册-已完成 注册用户将收到一封电子邮件,并点击下载Windows客户端WPF或Windows表单客户端–已完成 此WPF或Windows窗体客户端将使用部署在internet上的WCF,该internet托管在example.com上。我正在消息正文中内部传递用户名和Pwd。-已完成 现在我需要知道的是如何在消息级别和传输级别实现安全性 客户端请求应在消息级别加密 WCF服务器响应应在消息级别加密 客

我有我的网站https://example.com。这是一个互联网应用程序

用户可以从上述网站注册-已完成 注册用户将收到一封电子邮件,并点击下载Windows客户端WPF或Windows表单客户端–已完成 此WPF或Windows窗体客户端将使用部署在internet上的WCF,该internet托管在example.com上。我正在消息正文中内部传递用户名和Pwd。-已完成 现在我需要知道的是如何在消息级别和传输级别实现安全性

客户端请求应在消息级别加密 WCF服务器响应应在消息级别加密 客户端和服务器之间的通信应该是SSL 我已经从msdn.microsoft.com/en-us/library/ff648902.aspx浏览过

如何:在从Windows窗体调用WCF时,将wsHttpBinding与用户名身份验证和TransportWithMessageCredentials一起使用 如何:在从Windows窗体调用WCF时使用SQL Server成员身份提供程序的用户名身份验证和消息安全性 如何:在从Windows窗体调用WCF时使用证书身份验证和消息安全性 读完上面的内容后,我不知道该用哪一个。请建议哪一个是满足上述三个安全条件的最佳方案


如果我使用TransportWithMessageCredentials,我会同时看到消息级和传输级的加密吗?

TransportWithMessageCredentials是一个加密/安全选项,当WCF web服务盒由负载平衡器或反向代理(执行SSL/HTTPs加密工作)前置时使用

在正常情况下,如果WCF web服务框位于逻辑DMZ中,WCF主机的加密和客户端身份验证检查将在一个步骤中完成,服务将处理未加密且没有客户端身份验证凭据的裸请求内容

但是,如果您使用正在执行加密的负载平衡器或反向代理,出于许多原因,这是一个好主意,那么使用普通传输加密将向您的WCF web服务发送一条没有客户端身份验证凭据的消息

因此,TransportWithMessageCredentials所做的是在消息体内部保留客户端身份验证凭据,以便在RP/LB解密消息后,WCF web服务可以在第二步处理客户端身份验证请求

跟着?基本上,如果您使用F5负载平衡器或某种反向代理在WCF web服务处理消息之前对其进行加密/解密,则需要TransportWithMessageCredentials。无负载平衡器或反向代理,无需TransportWithMessageCredentials


希望这能澄清问题

谢谢你的回复。请确认。我的理解正确吗?我知道有两个安全级别1.传输安全性:安全性基于点对点应用,不提供多跳或通过中间应用程序节点路由。2.消息安全性:它提供端到端安全性。由于消息安全性直接对消息进行加密和签名,因此使用中介不会破坏安全性。它允许部分或选择性消息加密和签名,从而提高了应用程序的整体性能,感谢您的响应。请确认,我的理解正确吗?因此,使用TransportWithMessageCredentials,我们可以实现以上两种安全性,即在传输级别和消息级别加密整个SOAP消息头、正文。第三种安全模式使用了前面两种模式,并带来了这两种模式的优点。此模式称为TransportWithMessageCredential。在此模式下,消息安全性用于对客户端进行身份验证,传输安全性用于对服务器进行身份验证,并提供消息的机密性和完整性。正因为如此,TransportWithMessageCredential安全模式几乎与传输安全模式一样快,并以与消息安全相同的方式提供客户端身份验证扩展性。但是,与消息安全模式不同,它不提供完整的端到端安全性。TransportWithMessageCredential未提供完整的端到端安全性。正因为如此,我开始感到困惑。我希望我的客户机发送消息,它在soap消息级别加密,发送给客户机的服务器消息应该在消息级别加密。