NetValidatePasswordPolicy проблема в XP - PullRequest
3 голосов
/ 19 января 2011

Мой проект требует, чтобы он проверял сложность пароля перед созданием новой учетной записи.

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. Когда я пытаюсь запустить, он выдает подсказку со словами:

Не удалось найти точку входа в процедуру NetValidPasswordPolicyFree в библиотеке динамических ссылокNETAPI32.dll

В MSDN говорится, что API действителен только на серверах 2003 и 2008 серверов.Означает ли это, что он не может работать на XP?Или я могу найти какой-нибудь другой API, который бы делал то же самое, что и NetValidPasswordPolicy?

Я много гуглил по этой проблеме и нашел, что кто-то задавал похожий вопрос, но он остался без ответа :(. Итак, я пытаюсь испытать удачу.

Даже я пытался проанализировать 'NETAPI32.dll' в Reflector.exe, но при открытии файла .dll выдает ошибку: Ссылка на объект не установлена ​​для экземпляра объекта.

Я застрял плохо и не мог найти какой-либо способ. Любая помощь будет оценена :)

1 Ответ

0 голосов
/ 19 января 2011

Проблема решена:).

NetValidPasswordPolicy API от 'NETAPI32.dll' требует, чтобы он не поддерживался клиентом. Из-за этого требования я получаю предупреждение: Entry point not found. Я попробовал свой проект на сервере Windows 2003, и он работал.

И мой второй вопрос о Reflector.exe также недействителен, поскольку 'NETAPI32.dll' не является .Net dll, поэтому Reflector его не распознает.

...