代码之家  ›  专栏  ›  技术社区  ›  Asaf R

NetnamedPipeBinding绑定是否保证只在同一台计算机上工作?

  •  4
  • Asaf R  · 技术社区  · 14 年前

    我创建了一个windows服务,它使用wcf与它通信。应该只从同一台计算机调用服务。如果我能保证 从另一台机器和它通讯的方式,我可以考虑 安全的 .

    因为我在一台机器上使用通信,所以我选择使用 NetNamedPipeBinding . 这个绑定文档说 为机上通信优化 ,但不提供任何保证。

    我的问题是,netnamedpipebinding是否只在机器上提供保证? 如果不是,那么绑定是什么,或者您将如何实现提供这种保证的自定义绑定?

    谢谢,
    ASAF

    3 回复  |  直到 11 年前
        1
  •  6
  •   Asaf R    14 年前

    Microsoft在上发布了以下内容 Choosing a Transport 关于MSDN:

    何时使用命名管道传输

    命名管道是windows操作系统内核中的一个对象,例如进程可用于通信的共享内存部分。命名管道具有名称,可用于单台计算机上进程之间的单向或双向通信。

    当一台计算机上的不同wcf应用程序之间需要通信,并且您希望阻止来自另一台计算机的任何通信时,请使用命名管道传输。另一个限制是,从Windows远程桌面运行的进程可能被限制为同一个Windows远程桌面会话,除非它们具有提升的权限。

    这几乎给了我们想要的保证。

        2
  •  3
  •   user2388008    11 年前

    我当时正在阅读《世界自然基金会要义》第四章(装订)的文本,发现以下内容,我复制这些内容只是为了帮助别人;

    wcf将netnamedpipebiding绑定限制为本地计算机通信

    尽管可以使用命名管道跨网络通信,但wcf将使用限制为本地计算机通信。这意味着可以使用它来确保您的服务在网络上不可用。这是通过两种机制实现的:

    a)拒绝网络安全标识符(SID:S-1-5-2)访问命名管道。 b)命名管道的名称是随机生成并存储在共享内存中的,因此只有在同一台计算机上运行的客户端才能访问它。

        3
  •  1
  •   Community Egal    7 年前

    NetNamedPipeBinding 只适用于本地机器。看柱上的图表 here 以一种好的、系统的方式来确定要使用哪种类型的绑定。

    这里有一个 external link 这提供了一个更明确的答案,而不仅仅是相信我的话。