2012-01-02 2 views
0

У меня возникли проблемы с входом в конкретное подразделение в моем ConsoleApp. Я думаю, что моя строка LDAP является incorrecct каким-то образом, эти несколько выходных образцов из моего Test-Appвход в конкретный OU с использованием Directoryservices

Это отлично работает

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, которые должны что-то делать с моей учетной записью? Все, что я получаю, это неизвестный пользователь och неправильный пароль.

Все они работают, если я оставить из "НУ-НС" часть, conenctiong к my.domain является ветер ..

С уважением

+0

Что вы на самом деле пытаетесь достичь. Невозможно «войти в OU» –

+0

Привет, Брайан, я не знаю. Но я хочу обновить некоторые объекты Person, но работать только с объектами в конкретном OU. – elwis

ответ

1

Ваш путь LDAP должен быть что-то вроде:

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

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

или:

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

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

Update:

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

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

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

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

Спасибо за ответ, что я пытаюсь сделать в своем «реальном приложении», подключается таким образом, но не повезло. string adPath = "LDAP: //my.domain, ou = myou, dc = my, dc = domain"; string adUser = "myuser" string adPass = "mypass"; DirectoryEntry entry = new DirectoryEntry (adPath); DirectorySearcher искатель = новый DirectorySearcher (запись); searcher.Filter = @ "(objectClass = Person)"; entry.Username = adUser; entry.Password = adPass; – elwis

+0

@elwis: ваш путь LDAP определенно не очень хорош - проиграйте, что 'my.domain' в начале - это никогда не сработает. –

+0

Спасибо за ответ. Не могу заставить его работать, хотя, если я пропущу «ou» часть моих URL-адресов LDAP, все они работают. И в VBScript они работают даже с частью «OU», поэтому я думаю, что URL-адрес LDAP верен. Я просто должен переписать свое приложение как скрипт вместо этого, thnaks для помощи. – elwis

Смежные вопросы