Имя сервера следует за протоколом в строке соединения. Имя сервера является не обязательным, если вы зарегистрировались в домене активного каталога. Без имени сервера происходит связывание без сервера; это означает, что Windows 2000 пытается получить "лучший" контроллер домена в домене, который ассоциирован с пользователем, выполняющим связывание. Если внутри сайта нет сервера, будет использоваться первый найденный контроллер домена.
Связывание без сервера может выглядеть следующим образом:
LDAP://OU=Sales, DC=GlobalKnowladge, DC=Com
.
Номер порта
После
имени сервера можно определить номер порта серверного процесса, используя синтаксис
:xxx
. По умолчанию для сервера LDAP используется номер порта 389:
LDAP://dc01.globalknowledge.net:389
. Сервер Exchange использует тот же самый номер порта, что и сервер LDAP. Если сервер Exchange установлен на той же системе, например, как контроллер домена активного каталога, то можно сконфигурировать другой порт.
Известное имя
Четвертая часть, которую мы должны определить в пути доступа,— это известное имя (DN — Distinguished Name). Известное имя является гарантированным уникальным именем, идентифицирующим объект, к которому требуется доступ. В активном каталоге для определения имени объекта можно использовать синтаксис LDAP, который основывается на X.500.
) GlobalKnowledge домена GlobalKnowledge.com. Часть, которая определена самой правой является корневым объектом домена. Имя должно следовать иерархии дерева объектов.
Спецификацию LDAP для строкового представления известных имен можно найти в RFC 2253:
www.ietf.org/rfc/rfc2253.txt
.
Относительное известное имя
Относительное известное имя (RDN) используется для ссылки на объект внутри контейнерного объекта. Для RDN спецификации OU и DC не требуются, будет достаточно общего имени.
CN=Christian Nagel
является относительным известным именем внутри организационной единицы. Относительное известное имя может использоваться, если мы уже имеем ссылку на объект контейнера и хотим получить доступ к объектам-потомкам.
Используемый по умолчанию именующий контекст
Если известное имя не определено в пути доступа, процесс связывания будет выполняться в используемом по умолчанию именующем контексте. Можно считать используемый по умолчанию именующий контекст с помощью
rootDSE
. LDAP 3.0 определяет rootDSE как корень дерева каталогов на сервере каталога.
LDAP://rootDSE
или
LDAP://servername/rootDSE
Перечисляя все свойства
rootDSE
, можно получить информацию о
defaultNamingContext
, который будет использоваться, когда не определено никакое имя.
schemaNamingContext
и
configurationNamingContext
определяют требуемые имена, которые будут использоваться для доступа к схеме и конфигурации в хранилище активного каталога.
Следующий код используется для получения всех свойств
rootDSE
. Речь идет о связывании с помощью класса
DirectoryEntry
:
using (DirectoryEntry de = new DirectoryEntry) {
de.Path = "LDAP://celtlcrain/rootDSE";
de.Username = @"sentinel\chris";
de.Password = "mausemaus3";
PropertyCollection props = de.Properties;
foreach (string prop in props.PropertyNames) {
PropertyValueCollection values = props[prop];
foreach (string val in values) {
Console.Write(prop + ": ");
Console.WriteLine(val);.
}
}
}
Помимо
других свойств результат вывода этой программы показывает
Каждый объект имеет уникальный идентификатор — GUID. GUID является уникальным 128-битовым числом. Мы можем с соединиться с объектом, используя GUID. Таким образом, мы всегда получаем тот же самый объект, даже если объект был перемещен в другой контейнер. GUID генерируется при создании объекта и всегда остается тем же самым.
Можно получить строковое представление GUID с помощью
DirectoryEntry.NativeGuid
. Затем это строковое представление можно использовать для соединения с объектом. Даже если объект перемещается в другой контейнер, мы всегда получаем тот же объект.
Следующий пример показывает имя пути доступа для связывания без сервера со специфическим объектом, представленным GUID:
LDAP://<GUID=14abbd652aae1a47abc60782dcfc78ea>
Имена объектов в доменах Windows NT
Провайдер WinNT не допускает синтаксис LDAP в части имени строки связывания. Для этого провайдера объект определяется с помощью
ObjectName
,
ClassName
. Действительные строки связывания для домена Windows NT имеют следующий вид:
WinNT:
WinNT://DomainName
WinNT://DomairName/UserName, user
WinNT://DomainName/dc01/MyGroup, group
Имя пользователя
Если другой пользователь, отличный от зарегистрированного, должен использоваться для доступа к каталогу, так как зарегистрированный пользователь не имеет требуемых полномочий для доступа к активному каталогу, то должны определяться явные полномочия пользователя для процесса связывания. Для активного каталога имеется ряд способов задания имени пользователя.
Низкоуровневая регистрация
Для низкоуровневой регистрации имя пользователя можно определить с помощью имени домена:
domain\username
Известное имя
Пользователя можно определить также с помощью известного имени объекта пользователя, например: