我创建了一个使用WCF进行通信的Windows服务。该服务只应从同一台计算机上调用。如果我可以保证没有其他计算机可以与其通信,那么我可以认为它是安全的。
由于我正在单台计算机上使用通信,因此我选择使用NetNamedPipeBinding。该绑定的文档称其为针对本地通信进行了优化,但并不提供任何保证。
我的问题是,NetNamedPipeBinding是否提供仅限本机的保证?如果没有,那么哪种绑定提供此类保证,或者如何实现自定义绑定以提供此类保证?谢谢, Asaf
我创建了一个使用WCF进行通信的Windows服务。该服务只应从同一台计算机上调用。如果我可以保证没有其他计算机可以与其通信,那么我可以认为它是安全的。
由于我正在单台计算机上使用通信,因此我选择使用NetNamedPipeBinding。该绑定的文档称其为针对本地通信进行了优化,但并不提供任何保证。
我的问题是,NetNamedPipeBinding是否提供仅限本机的保证?如果没有,那么哪种绑定提供此类保证,或者如何实现自定义绑定以提供此类保证?微软在MSDN上发布了关于选择传输方式的以下内容:
何时使用命名管道传输
命名管道是Windows操作系统内核中的一个对象,例如进程可以用于通信的共享内存部分。命名管道有一个名称,并且可用于单台计算机上进程之间的单向或双向通信。
当需要在单台计算机上不同的WCF应用程序之间进行通信,并且希望防止来自其他计算机的任何通信时,请使用命名管道传输。另一个限制是来自Windows远程桌面运行的进程可能会被限制在相同的Windows远程桌面会话中,除非它们具有提升的特权。
这基本上提供了所需的保证。
NetNamedPipeBinding
只适用于本地机器。请参见此处的图表(链接),以了解确定要使用哪种类型的绑定的良好、系统化的方法。
这里有一个外部链接,提供比“只听我的话”更明确的答案。