![]() |
1
32
NetTcpBinding的默认客户端凭据类型是Windows身份验证。要使Windows身份验证工作,客户端和服务器必须位于同一域中,或者相互信任的域(在您的情况下,您没有)。 如果客户机和服务器都在同一个域中,WCF将“幕后”处理Windows身份验证的机制。当客户机和服务器都在同一台机器上时,它们实际上就在同一个域中,因此Windows可以使用自己的机制来处理加密和解密。不过,它只能在相互信任的域中实现这一点。 如果您没有相互信任的客户机域和服务器域,那么客户机和服务器必须有其他方法来确定他们是否通过密钥相互信任。这就是证书的来源。客户机和服务器都有自己的证书(或者服务器可以向客户机颁发证书)。 传输安全就像是对信封的外部以及内部进行加密。缺点是,如果你必须将信封传递给你自己组织之外的人,他们需要一个解密密钥来知道信封应该放在哪里——现在他们也可以读取信封中的消息。另一方面,传输安全性更快——它需要更少的安全开销数据与信封一起传递。 邮件安全加密您的邮件,但信封可以由邮政工作人员(互联网及其路由器)读取。只有源和目标具有解密消息的密钥,但是中介可以正确地路由您的消息。 总结:要在nettcpbinding上使用加密,客户机和服务器都必须在域(或相互信任的域)内,或者您必须具有密钥交换证书。 编辑:我被要求提供一些示例代码——这里是XAML中的一个绑定元素。它通常放在nettcpbinding元素中。
重要的是安全要素。对于传输安全,将模式属性更改为“传输”。根据上下文,clientCredentialType很可能不是“none”,而是“certificate”、“ntlm”或“windows”。 |