Conversion requête Ldap d'asp vers asp.net avec C#

Signaler
Messages postés
3
Date d'inscription
vendredi 19 novembre 2004
Statut
Membre
Dernière intervention
8 août 2005
-
Messages postés
98
Date d'inscription
samedi 17 septembre 2005
Statut
Membre
Dernière intervention
24 mai 2010
-
Bonjour,

L'un de vous pourra peut être me répondre:
j'ai une requête qui fonctionne parfaitement sur une page asp :
SET LireLDAP = GetObject("LDAP://CN=NomPersonne,CN=users,DC=X,DC=Y,DC=Z")
Guid=trim(LireLDAP.Guid)
J'essaye depuis quelques temps de la convertir en requête C# sur une page asp.net sans le moindre succès.
L'un de vous pourrait-il me donner un coup de pouce en m'expliquant comment faire, ce afin que je puisse faire des choses un peu plus complexes après.
Merci énormément par avance !

7 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
Ajoute l'assembly System.DirectoryServices à ton projet.
Il y a tout ce qu'il te faut dedans.


<HR>
Sébastien FERRAND

Blog : http://blogs.developpeur.org/sebmafate
Messages postés
3
Date d'inscription
vendredi 19 novembre 2004
Statut
Membre
Dernière intervention
8 août 2005

En fait, j'étais bien parti sur cette idée et à l'aide de cette assembly avait testé le code ci-dessous.

DirectoryEntry Ldap = new DirectoryEntry(LDAP://CN=NomPersonne,CN=users,DC=X,DC=Y,DC=Z")
Guid=trim(LireLDAP.Guid");
DirectorySearcher searcher = new DirectorySearcher(Ldap);
foreach( SearchResult result in searcher.FindAll() )
{
DirectoryEntry DirEntry = result.GetDirectoryEntry();
Response.Write(DirEntry.Properties["Guid"].Value);
}

Hélas, alors que sur la page asp les informations recherchées sont bien renvoyées, avec cet exemple l'exécution de cette page lève une erreur me disant que le domaine spécifié n'existe pas ou n'a pu être contacté...
Bref, je ne sais comment résoudre ce problème.
Messages postés
3
Date d'inscription
vendredi 19 novembre 2004
Statut
Membre
Dernière intervention
8 août 2005

(oups... j'ai mal recopié le code ne fonctionnant pas... Le voici donc de nouveau)

DirectoryEntry Ldap = new DirectoryEntry(LDAP://CN=NomPersonne,CN=users,DC=X,DC=Y,DC=Z");
DirectorySearcher searcher = new DirectorySearcher(Ldap);
foreach( SearchResult result in searcher.FindAll() )
{
DirectoryEntry DirEntry = result.GetDirectoryEntry();
Response.Write(DirEntry.Properties["Guid"].Value);
}
Messages postés
160
Date d'inscription
mardi 17 janvier 2006
Statut
Membre
Dernière intervention
9 décembre 2018

bonjour,

que faut t'il mettre dans X  Y Z ?
dans la chaine ldap
c'est bizard que la meme variable est plusieur affectaction !

LDAP://CN=NomPersonne,CN=users,DC=X,DC=Y,DC=Z")

merci
Messages postés
98
Date d'inscription
samedi 17 septembre 2005
Statut
Membre
Dernière intervention
24 mai 2010
1
Bonjour ;

J'ai utilisé l'Assembly System.DirectoryServices pour l'accès au LDAP de l'entreprise, mais j'ai un petit soucis :
DirectoryEntry Ldap = new DirectoryEntry(object);

Je n'arrive pas à bien saisir oubien quoi mettre dans object pour la chaîne de connexion au LDAP, qui est sur un serveur du réseau local, et d'ouù est-ce que je pourrais la récupérer ?

Pourriez-vous m'orienter dans ce côté ?

Merci à tous.
Messages postés
98
Date d'inscription
samedi 17 septembre 2005
Statut
Membre
Dernière intervention
24 mai 2010
1
Merci à tous. J'ai réussi à le faire ainsi :

DirectoryEntry root = new DirectoryEntry("LDAP://IP:Port", "User", "Password");

et ça marche, si ça intéresse quelqu'un.

En fait, j'utilise LDAP pour récupérer les informations (Nom, prénom, téléphone, ...) de l'utilisateur à partir du nom de la session Windows. Si quelqu'un est intéressé, je peux énumérer la procédure.

Merci.
Messages postés
98
Date d'inscription
samedi 17 septembre 2005
Statut
Membre
Dernière intervention
24 mai 2010
1
La solution sur la demande de adeliz :

Il faut penser à rajouter l'Assembly du Directory : System.DirectoryServices. Pour le faire :

- Add Reference sur le projet en cours ;
- Sélectionner System.DirectoryServices (accéssible depuis : C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Sustem.DirectoryServices.dll)

Puis dans Default.aspx.cs, faire les modifications suivantes :
- IPAddress Adresse IP du Serveur LDAP (389 Port d'accès au LDAP);
- UserName = Nom utilisateur qui dispose des droits d'accès au LDAP;
- Password = Mot de passe.
________________________________Source_____________________

    static string SearchUser(string sAMAccountName)
    {
        DirectoryEntry root = new DirectoryEntry("LDAP://IPAddress:389", "UserName", "Password");        //IPAddress Adresse IP du Serveur LDAP | 389 Port d'accès au LDAP | UserName = Nom utilisateur qui dispose des droits d'accès au LDAP | Password = Mot de passe
        DirectorySearcher searcher = new DirectorySearcher(root);
        string ReturnedName = "";

        searcher.Filter = "(anr=" + sAMAccountName + ")";

        // Au développeur de voir les informations à récupérer sur un inscrit dans le LDAP
        // A toi d'ajouter les autres infomations

        searcher.PropertiesToLoad.Add("cn");
        searcher.PropertiesToLoad.Add("displayName");
        searcher.PropertiesToLoad.Add("givenName");
        searcher.PropertiesToLoad.Add("name");

        SearchResultCollection results = searcher.FindAll();

        // Là, je récupère juste le nom complet de l'utilisateur, ajoutez les entrées que vous voulez
        foreach (SearchResult result in results)
        {
            ReturnedName = result.Properties["name"][0].ToString();
        }
        return ReturnedName;
    }