2013-06-12 4 views
0

Получил функцию, в которой пользователь аутентифицируется в активном каталоге. прекрасно работает, когда я его только так:DirectoryEntry path with server.company.local

new DirectoryEntry("LDAP://DC=" +"company" + ",DC=" + "local", userName, password) 

В других функциях активной директории Im используя ContextType.Domain как это:

var ctx = new PrincipalContext(ContextType.Domain, GetContextName())) 

Но когда им глядя на CTX это получить «ConnectServer» на ххххх .company.local, где «xxxxx» - это сервер, на котором находится активный каталог. Итак, как мне сделать путь к моему DirectoryEntry с сервером xxxxx? Пробовал так:

new DirectoryEntry("LDAP://DC=" + "xxxxx" + "DC," +"company" + ",DC=" + "local", userName, password) 

и это:

new DirectoryEntry("LDAP://CN=" + "xxxxx" + "DC," +"company" + ",DC=" + "local", userName, password) 

но и не работать. Мне любопытно, есть ли какие-либо преимущества наличия дополнительного «xxxxx» -сервера на пути и как он будет выглядеть, или я должен идти только с «фирменным» и «местным» путем, который действительно хорошо работает;)

ответ

0

Если вы хотите подключиться к определенному серверу (т.е. контроллер домена), можно использовать следующий синтаксис:

new DirectoryEntry("LDAP://xxxxx/DC=company,DC=local", userName, password) 

Я рекомендую не подключая к определенному контроллеру домена, если вы действительно не нужно. Не оставляя имя сервера, вы позволяете вашему коду подключаться к тому, что когда-либо контролировал контроллер домена в вашем домене. Указание конкретного сервера может быть полезно, если вам нужно подключиться к другому домену.