我想问你如何设置从远程客户端对我的命名管道服务器的可能访问。到目前为止,我认为 NamedPipes 只能用于同一台计算机上的进程间通信,但基于http://msdn.microsoft.com/en-us/library/windows/desktop/aa365150%28v=vs.85% 29.aspx应该可以通过设置 PIPE_ACCEPT_REMOTE_CLIENTS / PIPE_REJECT_REMOTE_CLIENTS 来允许/不允许从远程计算机访问。我没有找到如何在 .NET 中设置此功能的简单方法。我想 PipeSecurity 可以以某种方式用于它,但我没有找到简单的方法。
我当前的解决方案允许在当前机器上访问所有用户到我的命名管道。有人可以改进我的解决方案以允许从另一台机器访问吗?
谢谢。
public NamedPipeServerStream CreateNamedPipeServer(string pipeName)
{
const int BufferSize = 65535;
var pipeSecurity = new PipeSecurity();
pipeSecurity.AddAccessRule(new PipeAccessRule("Users", PipeAccessRights.ReadWrite, AccessControlType.Allow));
pipeSecurity.AddAccessRule(new PipeAccessRule("Administrators", PipeAccessRights.ReadWrite, AccessControlType.Allow));
return new NamedPipeServerStream(pipeName, PipeDirection.InOut, countOfServerInstancesToCreate, PipeTransmissionMode.Message, PipeOptions.Asynchronous,
BufferSize,
BufferSize);
}