Bonjour,
J'aimerais tester si le mot de passe en paramètre de ma fonction est le même que le réel mot de passe dans mon active directory.
Pour le pseudo et son équivalent le sam, pas de problème, Pour le mot de passe, je n'arrive pas à trouver la contrainte à mettre (sur mon objet DirectoryEntry ?). Cela doit être proche d'un Invoke, InvokeGet...
Voici la fonction :
Avez vous la solution ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 /// <summary> /// Try to connect Username with password /// </summary> /// <param name="username">Username to test</param> /// <param name="passwd">Username's password</param> /// <param name="domain">Domain to connect</param> /// <param name="pseudoATest">Le pseudo à tester</param> /// <param name="motDePasse">Le mot de passe de l'utilisateur</param> /// <returns>True: Username/Password OK; False: Authentication error</returns> public bool IsAuthenticated(string username, string passwd, string domain, string pseudoATest, string motDePasse) { try { DirectoryEntry entry = new DirectoryEntry("LDAP://" + domain, username, passwd, AuthenticationTypes.Secure); DirectorySearcher search = new DirectorySearcher(entry); search.Filter = "(&(objectClass=user)(SAMAccountName=" + pseudoATest + "))"; search.SearchScope = SearchScope.Subtree; SearchResult result = search.FindOne(); return result != null; } catch (Exception ex) { throw new Exception("Error authenticating user. " + ex.Message); } }
Merci par avance.
@+
Partager