【发布时间】:2020-04-16 08:04:13
【问题描述】:
我使用Windows API NetUserModalsSet 函数编写了一个代码来设置最小密码长度。 现在,这有不同的层次(结构)来设置我们想要的东西
USER_MODALS_INFO_0 这个结构允许我们为密码长度提供一个最大值,如 LM20_PWLEN(14)。如果给出任何大于此的值,则返回无效参数错误。但由于我想将其设置为更多,因此我使用了USER_MODALS_INFO_1001,因为它允许 PWLEN(256)。
当我使用密码长度 > 14 的 USER_MODALS_INFO_1001 结构时,它返回无效参数错误。但如果我将它定义为 14,它工作正常。现在这应该适用于任何密码长度
这是表现出这种行为的原因吗?我附上了我的代码的 sn-p
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;
}
【问题讨论】:
-
失败时的输出是什么?
-
@PhilBrubaker 使用 NetUserModalsSet 时出错。错误代码:87 和 parm_err:1
-
@BharathSuresh 您的代码对我有用。您能否再次检查这是否是可重复的样品?你的 Windows 版本是多少?
-
@BharathSuresh 是的,我可以在 Windows 7 上重现此问题。看来文档需要一些更新。我将在内部提交文档问题。