Ca fonctionne...sauf que sur une machine, le return code de l'appel de la fonction me renvoit => 5 et donc KO!
D'apres ce que j'ai lu sur internet ce return code correspond a ERROR_ACCESS_DENIED
=> The user does not have access to the requested information.
L'utilisateur n'aurait pas acces aux informations!? Mais comment lui octoroyer ?
Quelqu'un aurait il eu ce probleme et pourrait il me dire ce qu'il a effectue pour corriger cela !?
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 25 nov. 2007 à 01:26
Salut,
Je dirais plutôt que l'utilisateur n'a pas les droits de modifier les informations du compte ciblé.
Quelles sont les différences entre les machines ? Les machines font elles partie d'un domaine ? Quel type d'application utilise ce code ? Depuis où le code est il executé ? Des comptes de domaine sont ils utilisés pour lancer l'application ?
Sinon quel est le but final de la manoeuvre ?
cs_jimmy69
Messages postés778Date d'inscriptiondimanche 22 décembre 2002StatutMembreDernière intervention27 novembre 20081 27 nov. 2007 à 08:45
salut salut coq,
Oui exactement c'etait bien cela ! l'utilisateur avait bien l'option user can't change password d'ACTIVIE !!!ce qui nous renvoyaient quand on essayait d'executer le code ..erreur 5 => ACCESS DENIED d'apres la doc MSDN!
Alors pour info, cette dll est placé dans un paquet installable (installshield) et dans la user interface, j'ai un custom dialog avec 3 champs :
domaine, user, password, et quand le user clique sur next j'utilise cette méthode SANS CHANGER SON MOT DE PASSE BIEN SUR afin de verifier si ce user existe ou non ! Si le resultat est ok je passe a l'ecran suivant et j'installe donc le produit ! Il faut absolument que le user existe car un service tourne sous ce user c'est super important !
Ok tu vas me demander pourquoi utilise cette méthode et pas une autre !
Avant on utilisait une methode nommée logonuser avant mais sur certaines machines cela ne tournait pas (win 2000 et vista si mes souvenirs sont bons) !
C'est le seul moyen que j'ai trouve pour verifier si un user local ou du domaine existe ou pas !!!
Si tu as une autre idée, elle est bien sur la bienvenue !
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 1 déc. 2007 à 17:32
Salut,
Utiliser la méthode de changement de mot de passe pour tester la validité des informations d'authentification fournies me semble dangereux.
D'ailleurs tu changes le mot de passe, pour le même, mais tu fais l'action de le changer, ce qui peut avoir un impact sur la gestion de péremption du mot de passe et autres les règles en vigueur sur la gestion des comptes
A mon avis tu ferais mieux de creuser la raison pour laquelle LogonUser/LogonUserEx ne fonctionnait pas, ce qui en plus devrait te permettre de tester le logon dans le contexte final, c'est à dire pour lancer un service.