Conversion requête Ldap d'asp vers asp.net avec C#
cs_Jean21
Messages postés3Date d'inscriptionvendredi 19 novembre 2004StatutMembreDernière intervention 8 août 2005
-
8 août 2005 à 11:12
CSharpJSharp
Messages postés98Date d'inscriptionsamedi 17 septembre 2005StatutMembreDernière intervention24 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 !
cs_Jean21
Messages postés3Date d'inscriptionvendredi 19 novembre 2004StatutMembreDerniè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.
CSharpJSharp
Messages postés98Date d'inscriptionsamedi 17 septembre 2005StatutMembreDernière intervention24 mai 20101 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 ?
CSharpJSharp
Messages postés98Date d'inscriptionsamedi 17 septembre 2005StatutMembreDernière intervention24 mai 20101 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.
CSharpJSharp
Messages postés98Date d'inscriptionsamedi 17 septembre 2005StatutMembreDernière intervention24 mai 20101 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
// 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;
}