.net - WCF 安全性,TCP 还是 http?

标签 .net wcf wcf-binding wcf-security

我正在寻求保护 winforms 应用程序内“自托管”的 wcf 服务。

我已经完成了研究,但我不确定什么“适用于”我正在尝试做的事情。

我对 http 或 tcp 绑定(bind)没有偏好,尽管我认为 tcp 从根本上来说会更快?不管怎样,如果我使用TCP,我还需要设置证书吗?我不想为客户端和服务器创建自签名证书..还是应该?

我的基本概念是:

客户端 <----https/tcp(安全?如何?)----> 用户名/密码 ---><---wcf---><---内部身份验证---> < --多汁的小块-->

我想处理我自己的凭据授权,因为我打算针对 wcf 后面的内部系统进行身份验证...我在这里唯一关心的实际上是如何最好地通过线路“传输”我的身份验证详细信息,并且之后...保持往返消息/数据“安全”

有什么指点吗?

最佳答案

NET.TCP 通常是两者中性能更好的绑定(bind)。 HTTP 的优点在于其纯粹的互操作性。如果您的服务将位于应用程序内部,请使用 NET.TCP。如果您打算将其公开以便其他应用程序可以使用它,请使用 HTTP(或者在我看来更好的是 RESTful Web API 服务)。

假设您使用 NET.TCP,您有多种选择来保护您的服务。这些选择归结为两种主要方法:消息级安全性和传输级安全性。消息级安全性更加劳动密集型,因为它保护每条单独的消息,但如果您通过不安全的 channel 中继消息,则这是必要的。 另一方面,传输级安全性的性能更好,如果您的服务完全是内部的,那么它就会发挥作用,因为它本质上是通过安全通道将消息从 A 点发送到 B 点来工作的。

由于 WCF 安全性相当复杂,可以在 SO 响应中进行讨论,因此我强烈建议您进一步阅读它。以下是一些可帮助您入门的链接:

实现消息级安全性

实现传输级安全

实现证书

关于.net - WCF 安全性,TCP 还是 http?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16775633/

相关文章:

c# - 如何将 WCF IncludeExceptionDetailInFaults 添加到端点行为?

wcf-binding - ContractFilter 不匹配错误

c# - WCF:使用 TransferMode=Streamed over netTcpBinding 将文件传输到服务器时,对客户端的响应延迟

c# - 是否可以读取锁定文件?

.net - 防止按 alt 键选择菜单条

.net - Windows 事件查看器的主要用途是什么?

c# - 使用 C# 异步调用 WCF?

c# - 如何使用 WCF 签署 SOAP 请求

.net - %2b 导致 IIS Hosted Angular 返回 404

c# - 使用 PushSharp 推送通知 - 基础知识