2015-04-13 22 views
5

Sono stato a questo per un po 'e sto ottenendo sempre:Come connettersi ad Active Directory con il contesto principale?

System.DirectoryServices.AccountManagement.PrincipalServerDownException

Che credo significa che la mia impostazione di connessione (stringa di connessione) è sbagliato .

Quando scrivo "dsquery server" sul cmd sul computer in cui Active Directory è ottengo:

"CN = DCESTAGIO, CN = i server CN = Default-First-Site-Name, CN = Siti, CN = Configuration, DC = estagioit, DC = locale"

ho provato il seguente collegamento nei seguenti modi:

1:

PrincipalContext thisPrincipalContext = new PrincipalContext(ContextType.Domain, "192.168.56.101", "DC=estagioit,DC=local"); 

2:

PrincipalContext thisPrincipalContext = new PrincipalContext(ContextType.Domain, "192.168.56.101/DC=estagioit,DC=local"); 

3:

PrincipalContext thisPrincipalContext = new PrincipalContext(ContextType.Domain, "192.168.56.101/CN=DCESTAGIO,DC=estagioit,DC=local"); 

4:

PrincipalContext thisPrincipalContext = new PrincipalContext(ContextType.Domain, "192.168.56.101/CN=DCESTAGIO,CN=SERVERS,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=estagioit,DC=local"); 

5:

PrincipalContext thisPrincipalContext = new PrincipalContext(ContextType.Domain, "LDAP://192.168.56.101/CN=Users,DC=estagioit,DC=local"); 

E alcuni altri modi ...

Qualche idea su cosa c'è che non va e come posso far funzionare questa connessione?

PS: l'ip è corretto visto che l'ho usato per eseguire il ping e funziona.

PSS: Ho davvero bisogno di questo funzionamento al più presto se avete qualche suggerimento, sono tutti benvenuti.

risposta

15

Se si guarda la documentazione per i PrincipalContext costruttori, dovrebbe essere abbastanza chiaro:

public PrincipalContext(ContextType contextType, string name) 

o

public PrincipalContext(ContextType contextType, string name, string container) 

Quindi fondamentalmente bisogno:

  • il tipo di contesto (qui: ContextType.Domain)
  • il nome del dominio (prova solo con il nome "Netbios", ad es."YOURDOMAIN" - o lasciare NULL per il dominio "default")
  • opzionalmente un contenitore (come un percorso LDAP - un nome "distinto", il percorso completo ma senza alcuna LDAP:// prefisso)

Quindi provare qualcosa di simile :

PrincipalContext thisPrincipalContext = 
    new PrincipalContext(ContextType.Domain, "ESTAGIOIT"); 

o

PrincipalContext thisPrincipalContext = 
    new PrincipalContext(ContextType.Domain, null); // default domain 

o

PrincipalContext thisPrincipalContext = 
    new PrincipalContext(ContextType.Domain, "ESTAGIOIT", "DC=estagioit,DC=local"); 

o

PrincipalContext thisPrincipalContext = 
    new PrincipalContext(ContextType.Domain, null, "CN=Users,DC=estagioit,DC=local"); 
+0

Grazie davvero mi ha salvato l'uomo! ;) –

+0

Ho una domanda pertinente. Spero che tu possa aiutarmi: http://stackoverflow.com/questions/42971315/finding-active-directory-users-from-2-ou – user2931442

Problemi correlati