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

cs_Jean21 Messages postés 3 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 8 août 2005 - 8 août 2005 à 11:12
CSharpJSharp Messages postés 98 Date d'inscription samedi 17 septembre 2005 Statut Membre Dernière intervention 24 mai 2010 - 11 déc. 2007 à 15:12
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

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
8 août 2005 à 11:49
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
0
cs_Jean21 Messages postés 3 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 8 août 2005
8 août 2005 à 13:10
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.
0
cs_Jean21 Messages postés 3 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 8 août 2005
8 août 2005 à 13:13
(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);
}
0
garnier54 Messages postés 158 Date d'inscription mardi 17 janvier 2006 Statut Membre Dernière intervention 9 décembre 2018
21 sept. 2007 à 09:59
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
CSharpJSharp Messages postés 98 Date d'inscription samedi 17 septembre 2005 Statut Membre Dernière intervention 24 mai 2010 1
9 nov. 2007 à 12:00
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.
0
CSharpJSharp Messages postés 98 Date d'inscription samedi 17 septembre 2005 Statut Membre Dernière intervention 24 mai 2010 1
9 nov. 2007 à 16:33
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.
0
CSharpJSharp Messages postés 98 Date d'inscription samedi 17 septembre 2005 Statut Membre Dernière intervention 24 mai 2010 1
11 déc. 2007 à 15:12
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;
    }
0
Rejoignez-nous