在域中设置命名管道安全性
我有一个通过命名管道设置的服务器。 它对于域管理员来说工作得很好,但是当我在普通用户上测试客户端时,它给出了异常“访问路径被拒绝”。 因此,这就是我尝试设置的权限,以授予域中所有经过身份验证的用户访问权限。 我在这里做错了什么?
服务器:
NamedPipeServerStream pipeServer = new NamedPipeServerStream("message-generator", PipeDirection.InOut, pipeThreads, PipeTransmissionMode.Message, PipeOptions.None);
PipeSecurity pipeSecurity = pipeServer.GetAccessControl();
pipeSecurity.AddAccessRule(new PipeAccessRule(@"localdomain\Authenticated Users", PipeAccessRights.FullControl, AccessControlType.Allow));
pipeServer.SetAccessControl(pipeSecurity);
客户端:
NamedPipeClientStream pipeClient = new NamedPipeClientStream("servername", "message-generator", PipeDirection.InOut, PipeOptions.None, TokenImpersonationLevel.Impersonation))
服务器名称和域明显不同,但是在服务器上,当它到达 pipelineServer.SetAccessControl 函数时,它给了我异常“UnauthorizedAccessException”。
任何帮助是极大的赞赏
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要使用
NamedPipeServerStream
的构造函数,它允许您指定管道句柄上所需的访问权限:当您调用它时,您需要在中请求
PipeAccessRights.ChangePermissions
最后一个论点。 然后SetAccessControl
应该会成功。请参阅我的博客 http://blogs.charteris.com/blogs/chrisdi/archive/2009/12/04/exploring-the-wcf-named-pipe-binding-part-4.aspx 的例子。
You need to use the ctor for
NamedPipeServerStream
which allows you to specify the desired access rights on the pipe handle:When you call it, you need to ask for
PipeAccessRights.ChangePermissions
in the last argument. ThenSetAccessControl
should succeed.See my blog http://blogs.charteris.com/blogs/chrisdi/archive/2009/12/04/exploring-the-wcf-named-pipe-binding-part-4.aspx for an example.