Lew*_*ray 8 c# security wcf tcp nettcpbinding
我正在实现一个WCF服务,将在私有LAN中使用(部分).
我将使用netTcpBinding并希望在通信上实现某种形式的安全性,更具体地说,重要的是加密数据以便(例如)没有人可以查看通过网络传输的数据.
我不认为Windows身份验证是合适的,因为最终用户可能无法严格维护其Windows登录和角色以将其用作身份验证.我认为这会使它不恰当吗?如果我错了,请纠正我.
我的问题是,使用netTcpBinding在WCF服务中实现加密的最简单方法是什么?特别是当Windows凭据类型不可用时.
我已经尝试过使用证书进行试验(使用makecert生成我自己的证书)但是明显缺乏教程和文档,描述了如何使用TCP从头到尾完成此操作并在IIS之外的其他东西中托管服务.他们中的很多人都会详细介绍如何生成证书(并且这些教程中没有两个在这方面完全相同)并通过说出类似的内容来完成
使用这些来签署服务和客户端
......不幸的是,这是我需要进一步澄清的过程!
一般来说,证书解决方案似乎超过顶部,而且只是为了实现加密数据而有点过分!
在我可能做出的任何假设中的任何帮助或更正都将非常感激.
经过评论中的讨论...
根据我的经验(我已经完成了大量的序列化/WCF 工作),NetTcpBinding(和 NetDataContractSerializer)的性能“优势”很大程度上是神话。我从未见过显着的差异 - 通常普通的 http 绑定速度更快。
我会切换到基于 SSL 的 BasicHttpBinding,这设置起来很简单并且很安全。
如果您想要提高性能等,我会将序列化器切换为 protobuf-net 之类的东西(披露:我是作者)。这确实具有很容易证明的性能优势,并且在 WCF 中工作得很好(只需更改配置文件),特别是在 BasicHttpBinding 上(如果启用 MTOM 消息编码,则会有额外的提升,因为它是二进制格式)。
就我个人而言,我从不使用 NetTcpBinding;如前所述,性能值得怀疑,如果您发现需要 WAN 访问,它会让您依赖在 basic-http 中不起作用的东西。
| 归档时间: |
|
| 查看次数: |
572 次 |
| 最近记录: |