Интерфейсы службы активного каталога (ADSI)
Интерфейсы службы активного каталога (ADSI) являются программным интерфейсом к службам каталога. ADSI определяет некоторые интерфейсы COM, которые реализуются провайдерами ADSI. Это означает, что клиент может использовать различные службы каталога с одними и теми же программными интерфейсами. Классы среды .NET в пространстве имен System.DirectoryServices
используют интерфейсы ADSI.
На следующем рисунке можно видеть некоторых провайдеров ADSI (LDAP, WinNT, NDS), которые реализуют интерфейсы COM, такие как IAD
и IUnknown
. Сборка System.DirectoryServices
использует провайдеров ADSI:
Программирование активного каталога
Чтобы разрабатывать программы для активного каталога, мы используем классы из пространства имен System.DirectoryServices
. С помощью этих классов можно запрашивать объекты, просматривать и обновлять свойства, а также вести поиск объектов.
В следующих сегментах кода простое консольное приложение C# демонстрирует применение классов в пространстве имен System.DirectoryServices
.
Классы в System.DirectoryServices
Следующая таблица показывает основные классы в пространстве имен System.DirectoryServices
:
Класс | Описание |
---|---|
DirectoryEntry | Этот класс является основным классом в пространстве имен System.DirectoryServices . Объект этого класса представляет объект в хранилище активного каталога. Мы используем этот класс для связывания с объектом, просмотра и обновления свойств. Свойства объекта представлены в PropertyCollection . Каждый элемент в PropertyCollection имеет в свою очередь PropertyValueCollection . |
DirectoryEntries | DirectoryEntries является коллекцией объектов DirectoryEntry . Свойство Children объекта DirectoryEntry возвращает список объектов в коллекцию DirectoryEntries . |
DirectorySearcher | Этот класс является основным классом, используемым для поиска объектов со специфическими атрибутами. Чтобы определить поиск, можно использовать класс SortOption и перечисления SearchScope , SortDirection и ReferalChasingOption . Результаты поиска находятся в классе SearchResult или SearchResultCollection . Мы также получаем объекты ResultPropertyCollection и ResultPropertyValueCollection . |
Связывание
Чтобы получить значения объекта в активном каталоге, мы должны соединиться с активным каталогом. Процесс соединения называется связыванием. Путь доступа связывания может выглядеть следующим образом:
LDAP://dc01.globalknowledge.net/OU=Marketing, DC=GlobalKnowledge, DC=Com
Во время процесса связывания можно определить следующие позиции:
□ Протокол, определяющий используемого провайдера.
□ Имя сервера контроллера домена.
□ Номер порта серверного процесса.
□ Известное имя объекта для идентификации объекта, к которому требуется доступ.
□ Имя пользователя и пароль, если требуется другой пользователь для доступа к активному каталогу.
□ Можно также определить тип аутентификации, если требуется шифрование.
Протокол
Первая часть пути связывания определяет провайдера ADSI. Провайдер реализован как сервер COM; для идентификации можно найти идентификатор программы прямо в ключе HKEY_CLASSES_ROOT
. Провайдеры, которых получают вместе с Windows 2000, перечислены в следующей таблице:
Протокол | Описание |
---|---|
LDAP | Сервер LDAP, такой как каталог Exchange и сервер активного каталога Windows 2000. |