Определение наличия пароля у пользователя
От: KursantPupkin Россия  
Дата: 15.02.10 10:00
Оценка:
Добрый день.
Мне нужно определить наличие пароля у пользователя Windows. В MSDN решения проблемы найти не удалось. Пробовал запрашивать структуру USER_INFO_1 и проверять флаг UF_PASSWD_NOTREQD не помогает, у пользователя с пустым паролем флаг сброшен, установлен только для гостя. Пробовал проверять возраст пароля, тоже не помогает, для пустого пароля выдает возраст его обнуления. Какие еще варианты посоветуете?
Re: Определение наличия пароля у пользователя
От: McQwerty Россия  
Дата: 15.02.10 13:50
Оценка:
Здравствуйте, KursantPupkin, Вы писали:
KP>Мне нужно определить наличие пароля у пользователя Windows. В MSDN решения проблемы найти не удалось. Пробовал запрашивать структуру USER_INFO_1 и проверять флаг UF_PASSWD_NOTREQD не помогает, у пользователя с пустым паролем флаг сброшен, установлен только для гостя. Пробовал проверять возраст пароля, тоже не помогает, для пустого пароля выдает возраст его обнуления. Какие еще варианты посоветуете?

Ну, какой-нибудь CreateProcessWithLogonW с пустой строкой в качестве пароля? Если не создалось — значит хана, есть пароль.
Re: Определение наличия пароля у пользователя
От: DarkMaster Украина http://www.bdslib.at.ua
Дата: 15.02.10 14:07
Оценка:
Здравствуйте, 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);
}


Т.е. можно копать в эту сторону.
WBR, Dmitry Beloshistov AKA [-=BDS=-]
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.