如何确保只有我的程序可以访问命名管道?

DxC*_*xCK 5 .net c# security named-pipes inter-process-communicat

我计划将我的程序拆分为2个进程:第一个是GUI,第二个是使用管理员帐户运行的后台进程.两者都应该相互沟通.

我考虑使用命名管道,但有一件事困扰我:

有没有办法确保只有我的程序可以访问命名管道?

cas*_*One 4

创建命名管道时,通常可以使用安全描述符来保护对其(两侧)的访问。然而,安全描述符是针对用户的,而不是针对应用程序的(并且有充分的理由,从安全的角度来看,您希望保护用户,而不是应用程序)。

也就是说,您可以创建一个用户来运行客户端和服务器,只要保证帐户的安全,就可以了(您可以使用该用户的安全描述符来保护管道的安全)。

因此,如果您的程序是唯一使用该用户身份的程序,那么从技术上讲,是的,该管道只能由您的程序使用。但是,您必须管理帐户的安全性。