Я написал код, используя 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
Bharath Suresh 16 Апр 2020 в 11:04

1 ответ

Лучший ответ

Для параметра usrmod1001_min_passwd_len в Структура USER_MODALS_INFO_1001:

  • Windows 7 поддерживает значения 0 и 14 .

  • Windows 10 (тестовая версия 1903) поддерживает значение от 0 до 256 (PWLEN).

2
Rita Han 17 Апр 2020 в 02:19