在新创建的窗口站上修改ACL以拒绝用户在C#中创建进程

时间:2011-11-29 20:18:47

标签: c# desktop acl

我们的任务是在C#中创建一个服务,从当前用户桌面创建一个单独的桌面。该服务将以定时间隔来回切换,执行不同的任务。我们已经获得了使用window station创建新桌面的服务,但其中一项任务是以不同于创建桌面的用户身份运行桌面(现在拥有它)。我们创建了一个Windows用户,程序使用其令牌访问桌面。

现在这里是棘手的一点。我们需要使用ACE修改 new 桌面ACL,并指出不允许新用户在该桌面上创建进程,即拒绝所有进程。我一直在研究MSDN上的参考,似乎要走的路是用 GetSecurityInfo()获取窗口站SACL,修改它,然后用 GetSecurityInfo再次设置它( )

然而,这是我所得到的,并且说实话,我不知道如果这是正确的方法。这对我来说似乎是对的。我的问题是这些:

  1. 我无法使上述方法有效,因为我无法访问_SE_OBJECT_TYPE和SECURITY_INFORMATION常量/位标志,因为我不明白你如何在c#中包含它们各自的头文件。
  2. 如何修改ACL ACE以拒绝为单个用户创建进程,您使用哪些函数?
  3. 是否有人知道更新ACE桌面的更简单和/或更智能的方式?

0 个答案:

没有答案