我是 WCF 和命名管道的新手。
我需要一种在同一台机器上的 UI 应用程序和 Windows 服务之间安全通信的方法。这是我需要的: - 客户端 UI 应用程序需要向 Windows 服务发送(推送)各种消息类型。- 客户端 UI 应用程序需要从服务接收各种消息类型(推送或拉取)。
(这里的消息只是一个结构化的序列化数据)。
现在所有这些交换都应该只在授权用户帐户下进行(可能与服务帐户不同)。所以我正在考虑为服务和用户帐户创建一个命名管道。
但是,命名管道仅支持流。我有多种类型的消息需要通过命名管道进行交换,这意味着我需要定义它们并序列化/反序列化它们。
为了避免这种情况,我想到了在命名管道上使用 WCF(用于序列化和 RPC 支持)。还在 Windows 服务中托管 WCF 服务。
问题1)这是一个好方法吗?我在使用 WCF 下的 http 或 tcp 时犹豫不决,因为通信必须保持在机器内。
问题 2) 如果以及如何 ACL WCF 将使用的命名管道?这是我能控制的吗?我觉得使用特定 SID 对名称管道进行 ACL 可以为我提供更好的安全性,而不是在客户端和服务器之间实施身份验证方案。
感谢您的任何指点,建议!萨米尔