c# - 每个人都可以访问的命名管道
问题描述
我想创建一个 NamedPipe,它可以由网络中的计算机上的“每个人”访问。
这是我尝试过的两种类型的代码,但不起作用:
NamedPipeServerStream pipeServer;
try
{
PipeSecurity pipeSecurity = new PipeSecurity();
pipeSecurity.SetAccessRule(new PipeAccessRule(new SecurityIdentifier(WellKnownSidType.WorldSid, null), PipeAccessRights.ReadWrite, AccessControlType.Allow));
pipeServer =
new NamedPipeServerStream(
"Win7-PC\\testpipe",
PipeDirection.InOut,
NamedPipeServerStream.MaxAllowedServerInstances,
PipeTransmissionMode.Message,
PipeOptions.Asynchronous,
4096,
4096,
pipeSecurity, System.IO.HandleInheritability.None);
}
catch (Exception ex)
{
Console.Write("ERRRRRR");
throw;
}
第二种方法:
NamedPipeServerStream pipeServer;
try
{
PipeSecurity pipeSecurity = new PipeSecurity();
// allow network access, allow read/write to everyone locally and the owner/creator
pipeSecurity.SetSecurityDescriptorSddlForm("D:(A;;FA;;;NU)(A;;0x12019f;;;WD)(A;;0x12019f;;;CO)");
pipeServer =
new NamedPipeServerStream(
"testpipe",
PipeDirection.InOut,
NamedPipeServerStream.MaxAllowedServerInstances,
PipeTransmissionMode.Message,
PipeOptions.Asynchronous,
4096,
4096,
pipeSecurity);
}
catch (Exception ex)
{
Console.Write("ERRRRRR");
throw;
}
在服务器初始化期间抛出拒绝访问(第一种方法),第二种方法服务器启动但不允许任何人连接到它。
请指教
解决方案
推荐阅读
- excel - 保存工作簿的“备份副本”而不提交对 Excel 的更改?
- javascript - Javascript 表单验证 dom 选择器
- matlab - 无法将我的 c++ 应用程序与 MATLAB 连接
- google-app-engine - appcfg.sh 更新突然抛出 401 错误
- reactjs - 使用 onSubmit 为多个输入设置状态?
- postgresql - 如何将空日期插入postgres
- networking - Kubernetes pod wget -qO- 对某些服务失败,但不是全部
- api - 从我的 ESP8266 POST 到 REST API
- javascript - 从一个元素中删除类,同时使用 javascript 将该类添加到另一个元素
- google-apps-script - 在 Google 表格中显示活动单元格