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.
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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);
Mais pour le mot de passe je n'ai pas trouvé l'attribut.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SearchRequest request = new SearchRequest(searchDomainLDAP, "(samaccountname=" + username + ")(&(password=" + mot_de_passe + "))",
Existe-t-il ou faut-il faire autrement ?
Merci pour votre aide
Partager