2011-01-19 5 views
3

Mon projet nécessite une vérification de la complexité du mot de passe avant de créer le nouveau compte.Problème avec NetValidatePasswordPolicy sous XP

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); 

Je travaille sur les fenêtres XP.When j'essaye de courir, il Waring rapidement en disant:

L'entrée de procédure point de NetValidPasswordPolicyFree ne pouvait pas se trouver dans la bibliothèque de liens dynamiques netapi32.dll

Du MSDN, il a déclaré que l'API est uniquement valide dans le serveur 2003 et le serveur 2008. Cela signifie-t-il qu'il ne peut pas fonctionner sous XP? Ou puis-je trouver d'autres API pour faire la même chose que NetValidPasswordPolicy?

Je googlé beaucoup pour cette question et nous avons constaté que quelqu'un avait posé la question similaire mais sont restés sans réponse :(. Donc, ici, je suis en train ma chance.

Même j'ai essayé d'analyser 'NETAPI32.dll' dans Reflector.exe, mais tout en ouvrant le fichier .dll il erreurs: référence d'objet non définie à une instance d'un objet

Je suis coincé mal et ne pouvait pas en mesure de trouver un moyen toute aide sera appréciée :)

Répondre

0
..

Le problème a été résolu :).

NetValidPasswordPolicy API à partir de 'NETAPI32.dll' a des exigences que ce n'est pas «client» pris en charge. En raison de cette exigence, je reçois l'avertissement: Entry point not found. J'ai essayé mon projet sur le serveur Windows 2003 et cela a fonctionné.

Et ma deuxième question à propos de 'Reflector.exe' est également invalide car 'NETAPI32.dll' n'est pas .Net dll donc Reflector ne le reconnaîtra pas.