Bonjour à tous
Voici mon problème. Sur un site web, j'ai une page de Login qui doit me permettre de me connecter à un Active Directory distant, ce qui veut dire que le site web n'est pas sur le domaine de l'AD.
Pour cela j'utilise un login générique (usernameLDAP et passwordLDAP) qui me permet de requêter l'AD via le code si dessous.
Code:
1 2 3 4 5 6 7 8 9 10
|
System.DirectoryServices.Protocols.LdapConnection con = new System.DirectoryServices.Protocols.LdapConnection(new System.DirectoryServices.Protocols.LdapDirectoryIdentifier(ipServerLDAP + ":" + portLDAP));
con.Credential = new System.Net.NetworkCredential(usernameLDAP, passwordLDAP);
con.SessionOptions.SecureSocketLayer = true;
con.SessionOptions.ProtocolVersion = 3;
con.SessionOptions.VerifyServerCertificate = new System.DirectoryServices.Protocols.VerifyServerCertificateCallback(ServerCallback);
con.AuthType = System.DirectoryServices.Protocols.AuthType.Basic;
con.Bind();
SearchRequest request = new SearchRequest(searchDomainLDAP, "(samaccountname=" + username + ")", System.DirectoryServices.Protocols.SearchScope.Subtree, attribs);
SearchResponse response = (SearchResponse)con.SendRequest(request); |
Tout fonctionne nickel sauf qu'une fois connecté, j'aimerai maintenant vérifier si la personne qui se connecte (username) est bien connue du LDAP. Je pensais utiliser le SearchRequest en filtrant sur le samaccountname et sur le mot de passe, genre :
Code:
1 2
|
SearchRequest request = new SearchRequest(searchDomainLDAP, "(samaccountname=" + username + ")(&(password=" + mot_de_passe + "))", |
Mais pour le mot de passe je n'ai pas trouvé l'attribut.
Existe-t-il ou faut-il faire autrement ?
Merci pour votre aide