Как подключиться к Active Directory с основным контекстом?

Я занимаюсь этим некоторое время, и я всегда получаю:

System.DirectoryServices.AccountManagement.PrincipalServerDownException

Что, я думаю, означает, что моя настройка подключения (строка подключения) неверна.

Когда я пишу «сервер dsquery» в cmd на компьютере, где находится Active Directory, я получаю:

"CN=DCESTAGIO,CN=SERVERS,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=estagioit,DC=local"

Я пробовал следующее подключение следующими способами:

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");

И некоторые другие способы...

Любые идеи о том, что не так и как я могу заставить это соединение работать?

PS: IP-адрес правильный, так как я использовал его для пинга, и он работает.

PPS: Мне очень, очень нужно, чтобы это работало как можно скорее, если у вас есть какие-либо предложения, все они приветствуются.


person Vítor Martins    schedule 13.04.2015    source источник


Ответы (1)


Если вы посмотрите на документацию для конструкторов PrincipalContext, она должна быть совершенно ясной:

public PrincipalContext(ContextType contextType, string name)

or

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

Итак, вам в основном нужно:

  • ваш тип контекста (здесь: ContextType.Domain)
  • имя домена (попробуйте просто имя «Netbios», например «YOURDOMAIN» — или оставьте NULL для домена «по умолчанию»)
  • необязательно контейнер (в качестве пути LDAP — «отличительное» имя, полный путь, но без префикса LDAP://)

Итак, попробуйте что-то вроде этого:

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

or

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

or

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

or

PrincipalContext thisPrincipalContext = 
    new PrincipalContext(ContextType.Domain, null, "CN=Users,DC=estagioit,DC=local");
person marc_s    schedule 13.04.2015
comment
У меня есть актуальный вопрос. Я надеюсь, что вы можете мне помочь: stackoverflow.com/questions/42971315/ - person user2931442; 23.03.2017