是否有一个Windows c++ API来验证Windows用户名/域名是本地机器上的有效帐户(没有密码)

Is there a Windows C++ API to validate Windows username/domain name is a valid account on the local machine (without the password)?

本文关键字:Windows 有效 机器 密码 API c++ 有一个 验证 用户 域名 是否      更新时间:2023-10-16

我试图验证用户输入的给定用户名/域名是否在机器上是有效的用户,即在给定机器上是否存在该用户的本地用户帐户。(我不需要所有Active Directory用户。我只需要至少登录过一次机器的用户。

LogonUser API帮助我验证用户名/域名和密码组合,但它不告诉我如果用户名/域名是有效的,如果我没有访问密码

BOOL IsValidUser(LPCWSTR username)
{
    LPUSER_INFO_0 info = NULL;
    NET_API_STATUS result = NetUserGetInfo(NULL, username, 0, reinterpret_cast<LPBYTE>(&info));
    NetApiBufferFree(info);
    return result == NERR_Success;
}

但是,请注意,如果这个函数返回false,并不意味着用户名无效。NetUserGetInfo失败可能有其他原因。