2011-08-05 3 views
2

J'essaie d'accéder au répertoire du domaine XXX depuis mon application de console.Accéder au répertoire actif à partir du C#

   DirectoryEntry oDE = new DirectoryEntry("LDAP://DC=XXXX,DC=myDomain,DC=com"); 

      using (DirectorySearcher ds = new DirectorySearcher(oDE)) 
      { 
       ds.PropertiesToLoad.Add("name"); 
       ds.PropertiesToLoad.Add("userPrincipalName"); 

       ds.Filter = "(&(objectClass=user))"; 

       SearchResultCollection results = ds.FindAll(); 

       foreach (SearchResult result in results) 
       { 
        Console.WriteLine("{0} - {1}", 
         result.Properties["name"][0].ToString(), 
         result.Properties["userPrincipalName"][0].ToString()); 
       } 
      } 

lorsque la ligne Résultats de SearchResultCollection = ds.FindAll(); exécute Je reçois l'erreur "Il n'y a aucun objet sur le serveur."

Qu'est-ce que je fais mal?

+0

Dois-je fournir une authentification pour accéder à l'entrée du répertoire? – Roshe

+0

Avez-vous veillé à changer également les 3 autres parties du LDAP Uri? Si votre domaine est DomainXXX.lan; il doit être DC = DomainXXX, DC = lan – NKCSS

+0

Domaine externe = XXXX.com MyDomain = test.com DirectoryEntry oDE = new DirectoryEntry ("LDAP: //DC=XXX.com,DC=test,DC=com "); Je pense que c'est le chemin. – Roshe

Répondre

0

Ok, donc bref résumé de notre « chat » dans les commentaires:

Votre problème actuel est dû au fait que vous ne formatez pas correctement l'uri LDAP.

URI LDAP Buildup = "LDAP: // DC ="

suivi de votre uri de serveur (par exemple Test1.Test2.gov.lk) où vous remplacez le '' avec 'DC ='

Ainsi, Test1.Test2.gov.lk devient 'LDAP: // DC = Test1, DC = Test2, DC = gov, DC = lk'

Je ne peux pas aider vous avec votre problème de suivi; Je suggère de créer une nouvelle question pour cela.

Bonne chance,

Nick.

Questions connexes