我使用Windows API NetUserModalsSet函数编写了代码,以设置最小密码长度。
现在,它具有不同的级别(结构)来设置我们想要的
USER_MODALS_INFO_0 这种结构使我们可以将密码长度的最大值指定为LM20_PWLEN(14)。如果给出的任何值大于此值,则返回无效参数错误。但是由于我想将其设置为更多,所以我使用了USER_MODALS_INFO_1001,因为它允许PWLEN(256)。
当我使用密码长度> 14的USER_MODALS_INFO_1001结构时,它将返回无效的参数错误。但是,如果我将其定义为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;
}
最佳答案
对于 usrmod1001_min_passwd_len
结构的参数USER_MODALS_INFO_1001
:
PWLEN
)之间的值。