Добрый день.
Мне нужно определить наличие пароля у пользователя Windows. В MSDN решения проблемы найти не удалось. Пробовал запрашивать структуру USER_INFO_1 и проверять флаг UF_PASSWD_NOTREQD не помогает, у пользователя с пустым паролем флаг сброшен, установлен только для гостя. Пробовал проверять возраст пароля, тоже не помогает, для пустого пароля выдает возраст его обнуления. Какие еще варианты посоветуете?
Здравствуйте, KursantPupkin, Вы писали:
KP>Мне нужно определить наличие пароля у пользователя Windows. В MSDN решения проблемы найти не удалось. Пробовал запрашивать структуру USER_INFO_1 и проверять флаг UF_PASSWD_NOTREQD не помогает, у пользователя с пустым паролем флаг сброшен, установлен только для гостя. Пробовал проверять возраст пароля, тоже не помогает, для пустого пароля выдает возраст его обнуления. Какие еще варианты посоветуете?
Вроде на codeproject что-то похожее находил:
HANDLE hToken = NULL;
BOOL bLoggedOn = ::LogonUser(pszUserName, "",
NULL, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT,
&hToken);
DWORD dwError = GetLastError();
if(bLoggedOn || dwError == 1327)
{
printf("Empty Password Logon User: %s\n", pszUserName);
}
Т.е. можно копать в эту сторону.