Я написал код, используя Windows API NetUserModalsSet < / a> для установки минимальной длины пароля. Теперь у этого есть разные уровни (структуры), чтобы установить то, что мы хотим.
USER_MODALS_INFO_0 эта структура позволяет нам дать максимальное значение для длины пароля как LM20_PWLEN (14). Если задано какое-либо значение, большее, чем это, возвращается ошибка недопустимых параметров. Но поскольку я хочу установить большее значение, я использовал USER_MODALS_INFO_1001, поскольку он позволяет PWLEN (256).
Когда я использую структуру USER_MODALS_INFO_1001 с длиной пароля> 14, она возвращает ошибку неверного параметра. Но если я определю его как 14, он работает правильно. Теперь это должно было работать с любой длиной пароля <= 256, но этого не произошло.
Есть ли причина, по которой это проявляется в таком поведении? Я прикрепил фрагмент своего кода
USER_MODALS_INFO_1001 pBufPass;
DWORD mode = 1001, value = 17,parm_err;
printf("The minimum password length is going to be set as %lu\n",value);
pBufPass.usrmod1001_min_passwd_len = value;
printf("Value that is going to be set is : %lu\n",pBufPass.usrmod1001_min_passwd_len);
NET_API_STATUS nStatus = NetUserModalsSet(NULL, mode, (LPBYTE)&pBufPass, &parm_err);
if (nStatus != NERR_Success)
{
printf("Error while using NetUserModalsSet. Error code : %lu and parm_err : %lu\n", nStatus, parm_err);
ret = false;
}
1 ответ
Для параметра usrmod1001_min_passwd_len
в Структура USER_MODALS_INFO_1001
:
Windows 7 поддерживает значения 0 и 14 .
Windows 10 (тестовая версия 1903) поддерживает значение от 0 до 256 (
PWLEN
).
Похожие вопросы
Новые вопросы
c++
C ++ - это язык программирования общего назначения. Первоначально он был разработан как расширение C и имеет аналогичный синтаксис, но теперь это совершенно другой язык. Используйте этот тег для вопросов о коде (который должен быть) скомпилирован с помощью компилятора C ++. Используйте тег для конкретной версии для вопросов, связанных с конкретной версией стандарта [C ++ 11], [C ++ 14], [C ++ 17], [C ++ 20] или [C ++ 23] и т. Д. .