вход в определенную OU с использованием Directoryservices - PullRequest
0 голосов
/ 02 января 2012

У меня проблемы со входом в конкретное подразделение в моем ConsoleApp. Я предполагаю, что моя строка LDAP как-то неверна, вот некоторые выходные примеры из моего Test-App

Это прекрасно работает

Path: LDAP://my.domain User: DOMAIN\user Pass: mypass
DOMAIN\user = Autenticated

Но ничего из этого

Path: LDAP://my.domain, ou=myou, dc=my, dc=domain User: user Pass: mypass

Path: LDAP://my.domain/ou=myou User: user Pass: mypass

Path: LDAP://my.domain/ou=myou User: DOMAIN\user Pass: mypass

Они работают в VBS, хотя ... я что-то не так понимаю или ребята из AD должны что-то делать с моей учетной записью? Все, что я получаю, это неизвестный пользователь и неправильный пароль.

Они все работают, если я пропущу часть "ou", соединение с my.domain будет проще простого.

Привет

1 Ответ

1 голос
/ 02 января 2012

Ваш путь LDAP должен быть примерно таким:

LDAP://servername/ou=MyOU,dc=my,dc=domain

(вам нужно указать имя сервера , которое вы хотите использовать в качестве DC - в качестве контроллера домена)

или:

LDAP://ou=MyOU,dc=my,dc=domain  (for server-less binding)

Вы не можете указать имя пользователя / пароль для использования прямо в строке LDAP.Если вам это нужно, вам нужно будет найти другой способ предоставить эти учетные данные (например, выбрать правильный перегруженный конструктор для DirectoryEntry, который позволяет указать имя пользователя / пароль для подключения к AD).

Обновление:

Я думаю, вы должны изменить свой код, чтобы он работал следующим образом:

string adPath = "LDAP://ou=myou,dc=my,dc=domain"; 
string adUser = "myuser";
string adPass = "mypass"; 

// you might need to play around with the "AuthenticationTypes" to get it to work
DirectoryEntry entry = new DirectoryEntry(adPath, adUser, adPass, AuthenticationTypes.None);  

DirectorySearcher searcher = new DirectorySearcher(entry); 

searcher.Filter = @"(objectClass=Person)"; 

Я не уверен, будет ли работать такая строка LDAP:

string adPath = "LDAP://my.domain/ou=myou,dc=my,dc=domain"; 

Я смутно помню, что мне пришлось использовать имя сервера (не имя домена), чтобы заставить это работать - что-то вроде этого:

string adPath = "LDAP://dc01.my.domain/ou=myou,dc=my,dc=domain"; 
...