3

我的项目要求在创建新帐户之前需要检查密码复杂性。

My code looks like:

NET_API_STATUS status;
NET_VALIDATE_PASSWORD_CHANGE_INPUT_ARG inputArg = {0};
NET_VALIDATE_OUTPUT_ARG* pOutputArg = NULL;

inputArg.ClearPassword = NewPass;    
inputArg.PasswordMatch = TRUE;

status = NetValidatePasswordPolicy(DC, NULL, NetValidatePasswordChange,
            &inputArg, (void**)&pOutputArg);    
printf("status: %d, validationStatus: %d\n", status, pOutputArg->ValidationStatus);

NetValidatePasswordPolicyFree((void**)&pOutputArg);

我正在使用 Windows XP。当我尝试运行时,它会提示警告说:

无法在动态链接库 NETAPI32.dll 中定位程序入口点 NetValidPasswordPolicyFree

从 MSDN 中它说 API 仅在 2003 服务器和 2008 服务器中有效。这是否意味着它不能在XP上运行?或者我可以找到任何其他 API 来做与 NetValidPasswordPolicy 相同的事情吗?

我为这个问题搜索了很多,发现有人问过类似的问题,但没有得到回答:(。所以,我在这里碰碰运气。

即使我尝试'NETAPI32.dll'在 Reflector.exe 中进行分析,但是在打开 .dll 文件时它会出错:对象引用未设置为对象的实例。

我被困得很厉害,找不到任何办法。任何帮助将不胜感激 :)

4

1 回答 1

0

问题已解决:)。

NetValidPasswordPolicy来自的 API'NETAPI32.dll'要求它不支持“客户端”。由于这个要求,我收到了警告:Entry point not found. 我在 Windows 2003 服务器上尝试了我的项目并且它有效。

我关于“​​Reflector.exe”的第二个问题也是无效的,因为'NETAPI32.dll'不是.Net dll,所以Reflector 不会识别它。

于 2011-01-19T13:22:37.197 回答