LogonUser 不适用于受保护用户组中的用户

LogonUser Doesn't work for a user in the Protected Users group

尝试在服务 运行 作为本地系统下使用 LogonUser() 函数。已成功尝试对用户进行身份验证。但是,当用户在 Protected Users 组中时,该功能失败。

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

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

阅读有关受保护用户组的一些文档,看来我需要使用与 LogonUser() 不同的方法。 Protected Users 组是一个内置的 Windows 安全组,出于安全原因,它比普通域用户限制更多。有人知道 Windows API 可用于对受保护用户组中的用户进行身份验证吗?

实际上这个 API 确实适用于受保护的用户。我遇到的问题是我在调用 API 时域是一个空字符串,例如“”。它是从 C# 调用的...

对于普通域用户,调用域为“”的 LogonUser,对他们进行身份验证就可以了。但是,对于受保护用户组中的用户,它将失败,最后一个错误为 1327。但是,如果我将域名放在域参数中,它就可以工作。不需要 Kerberos 身份验证或类似的东西。