【发布时间】:2009-07-13 05:32:50
【问题描述】:
我正在使用命名管道在两个进程之间进行通信,并希望限制 Windows 本地系统上的任何用户访问。
我正在构建 ACL 以在传递给 CreateNamedPipe 的 SECURITY_ATTRIBUTES 中使用。
我将这段代码基于来自Microsoft 的代码。
SID_IDENTIFIER_AUTHORITY siaLocal = SECURITY_LOCAL_SID_AUTHORITY;
if( !AllocateAndInitializeSid( &siaLocal, SECURITY_LOCAL_RID,
0, 0, 0, 0, 0, 0, 0, 0,
&pSidLocal ) )
{
break;
}
然后我将该 sid 与 AddAccessAllowedAce 一起使用。
所有这一切都成功完成,我可以创建命名管道,但是当客户端进程尝试使用 CreateFile 连接时,它会失败并拒绝访问。
如何创建具有 SID 的 ACL,允许本地计算机的任何用户访问它?
【问题讨论】:
-
除了为“网络”ACE 添加一个拒绝访问令牌外,我认为您还需要为“所有人”或“经过身份验证的用户”添加一个允许访问令牌。