C# 如何使用WCF NetNamedPipesBinding仅在相同用户中的进程之间进行通信';登录会话?
我希望在同一用户的登录会话中运行两个进程,并通过WCF进行通信。NetNamedPipesBinding似乎最适合这种情况。但是可能有多个用户登录并运行这些进程,因此我需要一种方法来确保每个进程只与同一用户登录会话中的其他进程对话。理论上,每个用户都可以多次登录到同一台机器上——这里,不同登录会话中的进程不应该相互对话 我并不特别关心安全性(与之不同),这只是一个问题,即在同一个用户会话中,每个进程只与另一个进程对话C# 如何使用WCF NetNamedPipesBinding仅在相同用户中的进程之间进行通信';登录会话?,c#,.net,wcf,netnamedpipebinding,C#,.net,Wcf,Netnamedpipebinding,我希望在同一用户的登录会话中运行两个进程,并通过WCF进行通信。NetNamedPipesBinding似乎最适合这种情况。但是可能有多个用户登录并运行这些进程,因此我需要一种方法来确保每个进程只与同一用户登录会话中的其他进程对话。理论上,每个用户都可以多次登录到同一台机器上——这里,不同登录会话中的进程不应该相互对话 我并不特别关心安全性(与之不同),这只是一个问题,即在同一个用户会话中,每个进程只与另一个进程对话 一种解决方案是向端点地址添加唯一的登录会话id,但我不确定如何获得唯一的登录会
一种解决方案是向端点地址添加唯一的登录会话id,但我不确定如何获得唯一的登录会话(请参阅)。我想可能会有一些方法被烘焙到WCF中,或者有一种标准的方法来实现这一点。如果您可以确定:
遗憾的是,WCF没有提供任何方式来指定您不希望它甚至考虑通过“全局”命名空间发布管道。因此,如果上述条件1和2不能得到保证,我能想到的唯一方法就是按照您的建议,使用基于唯一登录会话ID的名称命名端点。获取登录SID有点费劲,需要对Win32 API进行非常简单的P/Invoke操作,但我看您已经做到了。太好了,谢谢!手指交叉了一些命名管道功能,使其成为wcf绑定的某个时候。(在我的例子中,我不能确定是1还是2,所以我将使用端点名称,但很高兴知道没有更简单的方法)。