GetUserNameExA函数在系统启动时(GINA)无法提供用户详细信息?

时间:2012-11-19 08:36:11

标签: c++ windows winapi dns active-directory

我正在使用c ++ win32 API。

我尝试使用GetUserNameExA();

获取用户详细信息

我已将此功能用于系统logondialog源(GINA)。 在我的日志文件中,它给出了

CN=ComputerName,CN=Computers,DC=JEGAN,DC=COM"

但它在登录系统后使用,当时它在我的其他解决方案中为用户提供了"CN=sanju,CN=USERS,DC=JEGAN,DC=COM"等详细信息。

我只想要用户详细信息,但它会在登录时提供系统详细信息,如何在登录时获取用户详细信息?

注意:我已经尝试过 ADSI,LDAP 功能& directoryservices 无法使用。因此建议任何其他系统功能。

1 个答案:

答案 0 :(得分:0)

您尝试执行的操作的唯一(非常古怪)解决方法是登录有权访问域的一方的其他用户帐户,从而可以查询用户详细信息(不记得详细所需的权限) ,但是)。否则我建议你跟Gregg一起回答。

使用线程impersonated作为此类用户,您应该能够通过NetUserGetInfo()查询您要登录的用户的信息(当时您怎么知道?)和朋友。选择最适合您需求的USER_INFO_* struct,只需向域名服务器询问相关信息即可。这也适用于早期和晚期的系统(功能,而不是GINA本身)。