LookupAccountName获取用户帐户类型VC ++

时间:2014-07-24 10:45:23

标签: winapi visual-c++

我需要检查提供的用户名是VC ++中的本地用户还是域用户。我认为LookupAccountName会因为最后一个论点而给我所需要的东西。我使用它来从帐户名称获取SID,它完全正常并且给我正确的SID,但不是他更正SID_NAME_USE。该网站说:

peUse [out]:指向SID_NAME_USE枚举类型的指针,指示函数返回时帐户的类型。

然而,无论我提供什么类型的用户(本地用户或域用户),peUse始终是SidTypeUser。我也试过LookupAccountSid,我也得到了同样的东西。这是我的问题:

  1. 我可以使用LookUpAccountName或LookupAccountSid来获取正确的帐户类型吗?
  2. 为什么函数总是将SidTypeUser作为用户类型返回?
  3. 是否有其他方法可以从其SID或用户名检查用户是域用户还是本地用户?
  4. 请有人帮助我,我已经坚持了一段时间了。

    谢谢!

1 个答案:

答案 0 :(得分:2)

LsaQueryInformationPolicyPolicyDnsDomainInformation一起使用,以检索计算机主域的SID。 (如果Sid成员是NULL,则计算机未加入域。)

否则,使用LookupAccountName检索您感兴趣的SID,然后使用GetWindowsAccountDomainSid提取用户SID的域部分。

使用EqualSid将主域的SID与用户的域SID进行比较。如果SID相等,则用户登录到域帐户;否则,用户登录到本地帐户。