当使用netttcpbinding时,在WCF中实现加密的最简单方法是什么?



我正在实现一个WCF服务,它将(部分地)在一个私有局域网内使用。

我将使用netttcpbinding,并希望在通信中实现某种形式的安全,更具体地说,重要的是对数据进行加密,以便(例如)没有人可以查看通过网络传输的数据。

我不相信Windows身份验证将是合适的,因为最终用户可能不会严格维护他们的Windows登录和角色,以使用它们作为身份验证。我觉得这样做不合适吗?如果我说错了,请纠正我。

我的问题是,使用netttcpbinding在WCF服务中实现加密的最简单方法是什么?

我已经尝试过使用证书(使用makecert生成我自己的证书),但是明显缺乏教程和文档来描述如何从头到尾使用TCP并在IIS以外的其他地方托管服务。其中很多教程都详细介绍了如何生成证书(在这方面没有两个教程是完全相同的),并以类似

这样的语句结束。

使用这些来签署服务和客户端

…不幸的是,这是我需要更多澄清的过程!

一般来说,证书解决方案似乎有点过分,只是为了实现加密数据!

如果有任何帮助或更正我可能做出的任何假设,我将非常感激。

根据评论中的讨论…

根据我的经验(我做过很多序列化/WCF工作),netttcpbinding(和NetDataContractSerializer)的性能"好处"在很大程度上是虚构的。我从未见过有显著的差异——通常普通的http绑定更快。

我会切换到SSL的BasicHttpBinding,这是微不足道的设置和安全。

如果你想要改进性能等等,我会将序列化器切换到类似protobuf-net的东西(说明:我是作者)。这个很容易证明具有性能优势,并且在WCF中工作得很好(只是对配置文件进行更改),特别是优于BasicHttpBinding(如果启用MTOM消息编码,则会有额外的提升,因为它是二进制格式)。

就我个人而言,我从不使用netttcpbinding;如前所述,性能是有问题的,如果您发现需要WAN访问,它会使您依赖于在basic-http中无法工作的东西。

最新更新