如何确定众所周知的群组中的用户成员身份

时间:2012-05-08 08:03:48

标签: c++ windows winapi access-token

在我目前的工作中,我需要列举Windows中的知名组成员,如Everyone,Interactive User等。我可以找到一些“根据我”定义如何估计用户是Everyone的成员,但是获取其他组的信息要困难得多。我遇到了http://msdn.microsoft.com/en-us/library/windows/desktop/aa379554(v=vs.85).aspx,它做了我需要的,差不多,因为我需要获得用户访问令牌而无需登录他/她(因为我不知道她/他的密码)。是否可以在没有登录用户的情况下获得访问令牌等内容?我想在没有.NET的情况下解决它。

2 个答案:

答案 0 :(得分:3)

每个人,交互式用户,经过身份验证的用户都不是真正的群组。它们是出现在您的令牌中的SID,但您不是它们的成员。

如果您是经过身份验证的,那么该属性会添加到您的令牌中,如果您是交互式的,依此类推。因此,同一个用户可以通过网络连接,并且他们的令牌中不会包含交互式用户。但如果他们通过终端服务登录,他们的令牌将拥有交互式用户。

您可以从此示例中看到这些伪组不是用户的属性,而是登录会话的属性。因此,您无法枚举具有该属性的用户。

答案 1 :(得分:0)

您必须查看this URL。这是关于SID,群组,成员资格等的一系列文章,包括C ++中的样本。