我正在使用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 无法使用。因此建议任何其他系统功能。
答案 0 :(得分:0)
您尝试执行的操作的唯一(非常古怪)解决方法是登录有权访问域的一方的其他用户帐户,从而可以查询用户详细信息(不记得详细所需的权限) ,但是)。否则我建议你跟Gregg一起回答。
使用线程impersonated作为此类用户,您应该能够通过NetUserGetInfo()
查询您要登录的用户的信息(当时您怎么知道?)和朋友。选择最适合您需求的USER_INFO_*
struct
,只需向域名服务器询问相关信息即可。这也适用于早期和晚期的系统(功能,而不是GINA本身)。