在处理WCF设置的泥潭时,我遇到了以下问题...
我使用NetTcp绑定创建了一个WCF客户端-服务器服务。我没有更改安全设置,当在一台机器上运行时,它非常好用。但是,当我从另一台机器运行客户端时,它抱怨服务器不喜欢发送的安全凭据。
我现在明白NetTCP默认情况下是“安全”的,我的客户端将会传递错误的安全详细信息,即Windows用户名和密码(或某种形式的域身份验证)到我的服务器,由于他们不在同一个域中,因此不会让它喜欢。
但是,我不理解的是:
我没有在绑定中指定任何安全性 - 标准设置是否期望发送Windows用户名或密码?
我没有在服务器上安装任何证书 - 我了解NetTCP绑定需要某种公共私有密钥来保护凭据 - 但是当客户端和服务器都在同一台机器上运行时,这似乎是有效的,数据是如何加密的呢?还是因为WCF知道它在同一台机器上,因此不需要加密?
现在我必须将客户端和服务器上的安全模式设置为“无”,它们可以很好地连接。但是是否有一种方法可以在没有证书的情况下加密我的数据?
最后...传输安全和消息安全之间有什么区别?
为了检查我的理解(原谅场景!),消息安全就像我向B发送信件,我对我的手写进行编码以确保任何人拦截它时都无法阅读?传输安全是如果我决定使用武装运输发送我的信件,以便任何人都不能接近它?
是否可能在没有证书的情况下在WCF中进行任何形式的加密?我的项目是私人项目,我不想购买证书,而且数据也不是那么敏感,所以这只是为了我的知识。