登录用户不适用于受保护用户组中的用户



尝试在以本地系统运行的服务下使用LogoUser((函数。已成功尝试对用户进行身份验证。但是,当用户在"受保护的用户"组中时,该功能将失败。

HANDLE hToken = NULL;
BOOL bSuccess = LogonUser(username, domain, password, LOGON32_LOGON_NETWORK, LOGON32_PROVIDER_DEFAULT, &hToken);
if (hToken != NULL) CloseHandle(hToken);

调用GetLastError()会导致1327的错误代码。如果用户已从"受保护用户"组中删除,则API调用成功。

阅读了Protected Users组的一些文档,我似乎需要使用与LogoUser((不同的方法。"受保护的用户"组是一个内置的Windows安全组,出于安全原因,它比常规域用户更具限制性。有人知道一个Windows API可以用于"受保护用户"组中用户的身份验证吗?

实际上这个API对受保护用户有效。我遇到的问题是我调用API时域是一个空字符串,例如&";。它是从C#调用的。。。

对于常规域用户,调用LogoUser,域为"&";,认证他们很好。但是,对于Protected users组中的用户,它将失败,Last Error为1327。但是,如果我把域名放在domain参数中,它就可以工作了。不需要Kerberos身份验证或类似的东西。

最新更新