Вход/Регистрация
C# для профессионалов. Том II
вернуться

Ватсон Карли

Шрифт:

Следующий пример показывает имя пути доступа для связывания без сервера со специфическим объектом, представленным 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

Известное имя

Пользователя можно определить также с помощью известного имени объекта пользователя, например:

CN=Administrator, CN=Users, DC=eichkogelstrasse, DC=local

Имя пользователя принципала (UPN)

UPN объекта определяется с помощью атрибута

userPrincipalName
. Системный администратор определяет его по информации регистрации на вкладке
Account
свойств
User
с помощью утилиты Active Directory Users and Computers. UPN не является адресом e-mail пользователя

Эта информация также уникальным образом определяет пользователя и может использоваться для регистрации:

Nagel@eichkogestrasse.local

Аутентификация

Для безопасной зашифрованной аутентификации можно также определить тип аутентификации. Аутентификация может задаваться с помощью свойства

AuthenticationType
класса
DirectoryEntry
. При этом присваиваемое значение является одним из перечислений
AuthenticationTypes
.

Связывание с помощью класса DirectoryEntry

Класс

System.DirectoryServices.DirectoryEntry
используется для определения всех связываемых данных. Можно использовать конструктор по умолчанию и определить данные связывания со свойствами
Path
,
Username
,
Password
и
AuthenticationType
или передать всю информацию в конструктор:

using (DirectoryEntry de = new DirectoryEntry) {

 de.Path = "LDAP://celticrain/DC=eichkogelstrasse, DC=local";

 de.Username = "nagel@eichkogelstrasse.local";

 de.Password = "someSecret";

 // использовать полномочия текущего пользователя

 DirectoryEntry de2 = new DirectoryEntry("LDAP://DC=eichkogelstrasse, DC=local");

Даже если создание объекта

DirectoryEntry
пройдет успешно, это не означает, что и связывание было успешным. Связывание произойдет, когда в первый раз будет прочитано свойство во избежание ненужного сетевого трафика. Существует ли объект или правильны ли полномочия определенного пользователя, можно будет увидеть при первом доступе к объекту.

Получение записей каталога

Теперь, когда мы знаем, как определить атрибута связывания с объектом в активном каталоге, давайте прочитаем атрибуты объекта.

Свойства объектов пользователей

Класс

DirectoryEntry
имеет некие свойства
Name
,
Guid
и
SchemaClassName
для получения информации об объекте. Первый раз при доступе к свойству объекта
DirectoryEntry
происходит связывание и заполняется кэш. Когда мы обращаемся к другому свойству, мы считываем его из кэша, и коммуникации с сервером не требуется для данных из того же объекта.

В следующем примере мы обращаемся к объекту пользователя с общим именем Christian Nagel в организационной единице Wrox Press.

DirectoryEntry de = new DirectoryEntry;

de.Path = "LDAP://celticrain/CN=Christian Nagel, " +

 "OU=Wrox Press, DC=eichkogelstrasse, DC=local";

Console.WriteLine("Name: "+ de.Name);

Console.WriteLine("GUID: " + de.Guid);

Console.WriteLine("Type: " + de.SchemaClassName);

  • Читать дальше
  • 1
  • ...
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: