Операционная система

 

 

 

 

Спецификаторы интерфейса в службе каталогов Active Directory Windows 2000

Техническое описание

 

Аннотация

В данной публикации приводится описание спецификаторов интерфейса в Службе каталогов Active Directory Microsoft® Windows® 2000. Спецификаторы интерфейса —- это объекты Active Directory, в которых содержатся сведения о пользовательском интерфейсе (UI). Спецификаторы интерфейса представляют собой гибкий инструмент для настройки интерфейсов в соответствии с задачами различных групп пользователей в распределенной сети.

 


© 1999 Microsoft Corporation. All rights reserved.

The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication.

This White Paper is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT.

The BackOffice logo, Microsoft, Windows, and Windows NT are registered trademarks of Microsoft Corporation.

Other product or company names mentioned herein may be the trademarks of their respective owners.

Microsoft Corporation • One Microsoft Way • Redmond, WA 98052-6399 • USA

1999


Оглавление


Введение..................................................................................... 1

Параметры интерфейса, хранящиеся в каталоге                               2

Страницы свойств                                                                              2

Контекстные меню                                                                              3

Значки классов                                                                                  4

Мастер создания объектов                                                                5

Имена классов  и признаков                                                               6

Контейнеры как оконечные узлы                                                        6

Контейнер спецификатора интерфейса...................... 7

Кэширование информации об интерфейсе                                         7

региональные настройки.................................................. 8

Изменения, вносимые пользователями..................... 9

Новые классы                                                                                    9

Изменение существующих классов                                                    9

Пример спецификатора интерфейса........................... 10

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ...................................... 11


Введение


 Active Directory — это развитая адаптируемая служба каталогов, обладающая широкими возможностями по настройке для самых разных организационных задач. Например, Active Directory позволяет изменять существующие объекты (классы) путем изменения содержащихся в них атрибутов. Можно задавать новые атрибуты, а в некоторых случаях и удалять уже имеющиеся.

Можно создавать новые классы, наследующие свойства одного или нескольких существующих; кроме того, к их характеристикам могут быть добавлены новые атрибуты. Вносить подобные изменения в Active Directory относительно просто. Поэтому пользовательский интерфейс (UI), соответствующий этим объектам, тоже должен поддаваться модификации и настройке.

У администраторов и пользователей требования к интерфейсу могут заметно различаться. Многие свойства и функции интерфейса, не имеющие большого значения для пользователей, могут оказаться очень важными для администратора. Кроме того, Active Directory содержит развитую систему защиты, которая позволяет распознавать объекты (и, соответственно, разрешать работу с ними) на основе их индивидуальных атрибутов, а также позволяет передавать разным пользователям различные полномочия по управлению системой. Таким образом, Active Directory поддерживает пользовательский интерфейс, который способен удовлетворить нужды администраторов и конечных пользователей, обеспечивает возможность изменения логической структуры и обладает развитой системой защиты.

UI администратора состоит из нескольких утилит, работающих на базе Консоли управления (Microsoft Management Console, MMC). К ним  относятся: Диспетчер Active Directory, Диспетчер узлов и служб Active Directory (Active Directory Sites and Services Manager), Диспетчер дерева Active Directory (Active Directory Tree Manager) и Диспетчер логической структуры Active directory (Active Directory Schema Manager).

В отличие от администраторов, пользователи взаимодействуют с Active Directory через оболочку Windows. Пользователи могут просматривать содержимое Active Directory либо через "Сетевое окружение", воспользовавшись значком на Рабочем столе, либо диалоговыми окнами поиска, доступными через меню "Пуск|Найти".

Хотя администраторы и пользователи располагают различными интерфейсами и их работа с Active Directory отличается, обеим категориям нужен интерфейс, способный отображать объекты Службы каталогов. Поэтому UI должен быть достаточно гибким, чтобы отвечать запросам различных групп пользователей, и при этом соответствовать общим требованиям, предъявляемым к пользовательским интерфейсам, таким как простота настройки, локализации  и способность к расширению. 

параметры ИНТЕРФЕЙСА,  ХРАНЯЩиеСЯ В КАТАЛОГЕ


Описание характеристик пользовательского интерфейса хранится в Active Directory, причем эта информация детализирована на уровне классов. Описание каждого класса содержится в специальной области Каталога, которая называется логической структурой (schema). Элементы этого раздела называются объектами логической структуры (schema class objects). Каждый объект логической структуры может содержать информацию о виде пользовательского интерфейса, которая будет связана только с этим объектом.

Active Directory в Windows 2000 позволяет задавать разнообразные параметры UI в каждом из классов. Среди таких параметров — страницы свойств (property pages), контекстные меню (context menus), значки, мастера создания объектов (creation wizards), а также региональные настройки (localized class and attribute names).

Группа параметров UI содержит информацию о страницах свойств, контекстных меню, значках, мастерах создания объектов, а также данные о локализации. Эти данные используются для формирования пользовательских интерфейсов, с различными свойствами для администраторов и для конечных пользователей: один набор элементов (например, страниц свойств, контекстных меню и т. п.) можно поставить в соответствие приложениям администратора, а другой набор элементов связать с приложениями для конечных пользователей.

Информация об UI хранится в объектах Active Directory, которые называются Display-Specifier (спецификаторы интерфейса). В каждом таком объекте хранятся признаки, описывающие различные элементы того конкретного пользовательского интерфейса, к которому относится данный спецификатор. Спецификаторы интерфейса хранятся в контейнере спецификаторов интерфейса (Display Specifiers container), отдельном для каждой региональной настройки (locale), поддерживаемой Windows 2000.

Страницы свойств

Каждая страница свойств в спецификаторе интерфейса представляет собой СОМ-объект. Описание СОМ-объекта (его уникальный идентификатор UUID) хранится в виде одного из атрибутов в спецификаторе. Атрибуты страницы свойств могут принимать различные значения, причем каждый элемент может содержать описание только одного СОМ-объекта. Такие атрибуты страницы свойств называются Admin-Property-Pages (Страницами свойств администратора) и Shell-Property-Pages (Страницами свойств оболочки).

Идентификатор класса (UUID), указывающий на COM-объект страницы свойств, регистрируется в данной системе и активизируется стандартными методами создания СОМ-объектов. Этот объект должен поддерживать интерфейсы оболочки IShellExtInit и IShellPropSheetExt.

Описание характеристик страницы свойств как СОМ-объекта хранится в одном из атрибутов спецификатора интерфейса в виде строки следующего формата:

<order-number>,<CLSID>,[optional data]  

где

·         order-number (порядковый номер) определяет положение данной страницы на листе. Порядковые номера сортируются путем сравнения с учетом знака, поэтому в их массиве нет заранее заданного начального номера и допускается наличие пропусков.

·         CLSID (идентификатор класса) — это строковое представление уникального идентификатора UUID, заключенное в фигурные скобки.

·         optional data (дополнительная информация) передается СОМ-объекту через объект данных IShellExtInit::Initialize. В настоящее время формат данных в буфере обмена имеет название CFSTR_DSPROPERTYPAGEINFO, но оно должно измениться до того, как Windows 2000 будет выпущена.

 

Каждый СОМ-объект может содержать несколько страниц свойств. Один из возможных вариантов использования дополнительной информации — это указание названий отображаемых страниц. Такой способ предоставляет разработчику широкие возможности по заданию количества СОМ-объектов, необходимых для создания требуемых страниц.

Контекстные меню

Команды контекстных меню могут являться либо СОМ-объектами, которые активизируются стандартными методами создания СОМ-объектов, либо приложениями, которые исполняются стандартной функцией ShellExec. Как и в случае со страницами свойств, атрибуты в контекстных меню могут принимать различные значения, причем каждый элемент описывает характеристики одного СОМ-объекта или приложения.

Атрибуты контекстных меню называются Admin-Context-Menu (контекстным меню администратора) и Shell-Context-Menu (контекстным меню оболочки). Помимо них, имеется просто Context-Menu, который содержит общие элементы интерфейсов администратора и пользователя.

Идентификатор класса (UUID), указывающий на COM-объект контекстного меню, регистрируется в данной системе и активизируется стандартными методами создания СОМ-объектов. Этот объект должен поддерживать интерфейсы оболочки IShellExtInit и IContextMenut.

Описание характеристик контекстного меню как СОМ-объекта хранится в атрибуте контекстного меню в спецификаторе интерфейса в виде строки следующего формата:

<order-number>,<CLSID>,[optional data]

где

·         order-number (порядковый номер) определяет расположение данной команды внутри контекстного меню. Порядковые номера сортируются путем сравнения с учетом знака, поэтому в их массиве нет заранее заданного начального номера и допускаются пропуски.

·         CLSID (идентификатор класса) это строковое представление уникального идентификатора UUID, заключенное в фигурные скобки.

·         СОМ-объект должен поддерживать интерфейс IContextMenu.

·         optional data (дополнительная информация) передается СОМ-объекту через IShellExtInit::Initialize.

Описание приложения хранится в атрибуте Display-Specifier в виде строки следующего формата:

<order-number>,<context menu name>,<program name>

где

·         order-number (порядковый номер) определяет расположение данной команды внутри контекстного меню. Порядковые номера сортируются путем сравнения с учетом знака, поэтому в их массиве нет заранее заданного начального номера и допускаются пропуски.

·         context menu item — это текст, который появляется в соответствующей строке контекстного меню.

·         program name — название приложения, выполняемого при выборе строки меню. Или  должен быть указан полный путь к приложению, или оно должно находиться в одной из областей открытых для поиска.

·         уникальное имя (distinguished name) и класс выбранного объекта передаются соответственно в качестве первого и второго аргументов.

Значки классов

Пиктограммы, или значки, используемые для символического изображения различных классов, содержатся в спецификаторе интерфейса. Каждый класс может содержать несколько значков, обозначающих  различные состояния одного и того же объекта. Например, в классе папок могут храниться растровые изображения, обозначающие открытое, закрытое и неактивное состояние папки. В настоящей версии ОС допускается наличие 16 различных значков для каждого класса.

Соответствующий признак имеет название Class-Icon (значок класса) и может быть задан двумя способами:

<state>,<ICO-file-name>

или

<state>,<DLL-name>,<resource-ID>

где

·         Параметр state (состояние) представляет собой целое число, принимающее значения от 0 до 15. Значение 0 принимается по умолчанию и соответствует значку, обозначающему закрытое состояние объекта. Значение 1 соответствует открытому состоянию объекта, значение 2 обозначает неактивное состояние, а остальные значения определяются приложением.

·         Параметр ICO-file-name или DLL-name —это имя файла, доступного для автоматического поиска данного компьютера.

·         resource-ID (идентификатор ресурса) представляет собой начинающуюся с нуля ссылку на список значков в динамической библиотеке.

Мастер создания объектов

При создании новых объектов происходит вызов мастера создания объектов (object creation wizard). В каждом классе объекта можно указать вызов специального мастера, либо общего мастера создания объектов. Для распространенных классов (таких как user (“пользователь”) или organizationalUnit (“подразделение”)) в Диспетчере Active Directory имеется стандартный набор необходимых мастеров.

Предусмотрены два способа модификации мастеров создания объектов: либо полная замена мастера, либо его дополнение.

Замена существующего мастера производится с помощью первичного расширения (primary extension), содержащего первичный набор страниц,  которые обрабатываются так же, как и исходные страницы. Первичное расширение поддерживает также механизм модификации, с помощью которого можно инициализировать другие расширения к мастеру создания объектов.

Модификацию существующего мастера можно осуществить с помощью дополнения к нему расширений, которые создают новые страницы и размещают их после его собственных страниц или страниц первичного расширения.

В обоих случаях расширения должны быть реализованы как СОМ-объект и поддерживать интерфейс IDsAdminWizExt. Уникальный идентификатор (UUID) класса регистрируется в системе и активизируется стандартными методами создания СОМ-объектов. Он указывает как на мастер создания объектов, так и на расширения к нему.

Описание СОМ-объекта мастера создания объектов хранится в атрибуте Creation-Wizard, имеющем только одно значение и записываемом в виде строки в следующем формате:

<CLSID> 

где идентификатор класса CLSID — это строковое представление уникального идентификатора UUID, заключенное в фигурные скобки.

Описание СОМ-объекта расширения к мастеру создания объектов, хранится в атрибуте признаке Create-Wizard-Ext в виде строки в следующем формате:

<order-number>,<CLSID>

где

·         order-number (порядковый номер) определяет положение расширения дополнения внутри мастера. Порядковые номера сортируются путем сравнения с учетом знака, поэтому в их массиве нет заранее заданного начального номера и допускаются пропуски.

·         CLSID (идентификатор класса) — это строковое представление уникального идентификатора UUID, заключенное в фигурные скобки/

В отличие от СОМ-объектов, соответствующих страницам свойств, СОМ-объекты мастеров создания объектов могут поддерживать только по одному мастеру создания объектов.

Имена классов  и признаков

Каждый класс и каждый атрибут из этого класса могут иметь внешние имена. Внешнее имя класса хранится в атрибуте Class-Display-Name в виде строки в формате Unicode. Внешние имена атрибутов хранятся в множественных атрибутах Attribute-Display-Name в виде нескольких строковых переменных  в формате Unicode. Каждый элемент такой строки состоит из пары имен, разделенных запятой. (Первый параметр пары является LDAP-именем атрибута, за ним следует запятая, а затем — второй параметр, являющийся внешним именем атрибута.

 

Контейнеры как оконечные узлы

Вообще говоря, любой объект в Active Directory может являться контейнером, то есть содержать в себе другие объекты. Данный принцип может запутать структуру пользовательского интерфейса. Чтобы этого не произошло, предусмотрена возможность указать, что данный класс следует по умолчанию рассматривать как оконечный элемент (leaf element). Признак Treat-As-Leaf содержит логическую переменную; ее значение True указывает, что объекты данного класса должны рассматриваться как оконечные элементы.

 

Контейнер спецификатора интерфейса


Контейнер Configuration содержит в себе контейнер DisplaySpecifiers, который, в свою очередь, содержит в себе контейнеры, соответствующие каждой региональной настройке (locale). В качестве имен этих контейнеров используются их шестнадцатиричные идентификаторы LCID. Так, контейнеру для зоны US/English присвоено имя 409, контейнеру зоны German — 407, зоны Japanese — 411 и т. д.

Каждый контейнер региональной настройки содержит объекты,  относящиеся к классу Display-Specifier. Имена объектов спецификатора образуются путем присоединения суффикса “–Display” к LDAP-имени объекта.

Например, в классе пользователя имеется объект спецификатора, называемый “user-Display”. Таким образом, при установлении связи с объектом данного класса производится поиск одноименного объекта из Display-Specifier, находящегося в пределах контейнера текущей региональной настройки.

Кэширование информации об интерфейсе

Когда появляется новый класс, происходит выборка информация о параметрах интерфейса и результаты сохраняются для отображения других объектов данного класса. Кэш-память имеет отдельные разделы для каждого процесса, и не является сохраняемой.

 

региональные настройки


Каждый контейнер региональной настройки содержит объекты Display-Specifier, соответствующие данной зоне. Приложения Active Directory, имеющие вывод на экран, при запуске просматривают контейнер региональной настройки с тем же именем, и региональный идентификатор текущей пользовательской сессии. Если папку с таким именем обнаружить не удается, то используется настройка зоны US/English.

Для региональной настройки СОМ-объектов можно либо организовать отдельный двоичный файл для каждого языка, либо объединить все языковые ресурсы в одном двоичном файле.

Аналогично, имеется возможность переводить названия имен классов и признаков на другие языки. Каждая языковая зона могут соответствовать различные значки.

 

Изменения, вносимые пользователями


Active Directory можно настроить так, чтобы его параметры наилучшим образом отвечали потребностям пользователей. Пользовательский интерфейс каталога также можно настроить по желанию пользователя. Active Directory позволяет модифицировать логическую структуру путем создания новых классов и признаков или путем модификации существующих классов. Чтобы отразить появление новых элементов пользовательского интерфейса в результате модификации логической структуры, можно вносить изменения в спецификаторы интерфейса.

Новые классы

При создании нового класса создается объект Display-Specifier. Если в системе существует несколько региональных настроек, то для каждой из них создается свой спецификатор. Если новый класс создается на основе родительского класса, который имеет пользовательский интерфейс с удовлетворительными параметрами, то новому классу ставится в соответствие тот же интерфейс. При этом для новых атрибутов можно добавлять дополнительные страницы, команды меню и внешние имена. В противном случае создается новый пользовательский интерфейс и указываются все его параметры. В любом случае для нового класса можно использовать новый значок и новое внешнее имя.

Изменение существующих классов

К существующему классу можно добавлять новые атрибуты. Можно либо добавлять новые элементы (страницы, меню и внешние имена) к существующим, либо заменять имеющийся интерфейс. Можно также создавать новые страницы свойств, в которых указывается меньшее количество атрибутов класса и создавать контекстные меню с меньшим набором команд.

 

Пример спецификатора интерфейса


Ниже приводится пример спецификатора интерфейса в Active Directory Windows 2000.

 

[group-Display]

objectClass = displaySpecifier

ObjectCategory = Display-Specifier

cn = group-Display

adminPropertyPages = 1,{6dfe6489-a212-11d0-bcd5-00c04fd8d5b6}

adminPropertyPages = 2,{6dfe648b-a212-11d0-bcd5-00c04fd8d5b6}

adminPropertyPages = 3,{6dfe6488-a212-11d0-bcd5-00c04fd8d5b6}

adminPropertyPages = 4,{4E40F770-369C-11d0-8922-00A024AB2DBB}

shellPropertyPages = 1,{f5d121ee-c8ac-11d0-bcdb-00c04fd8d5b6}

shellPropertyPages = 2,{dde2c5e9-c8ae-11d0-bcdb-00c04fd8d5b6}

contextMenu = 0,{62AE1F9A-126A-11D0-A14B-0800361B1103}

adminContextMenu = 1,{08eb4fa6-6ffd-11d1-b0e0-00c04fd8dca6}

classDisplayName = Group

attributeDisplayNames = cn,Name

attributeDisplayNames = c,Country Abbreviation

attributeDisplayNames = description,Description

attributeDisplayNames = distinguishedName,X500 Distinguished Name

attributeDisplayNames = l,City

attributeDisplayNames = managedBy,Managed By

attributeDisplayNames = member,Members

attributeDisplayNames = notes,Notes

attributeDisplayNames = physicalDeliveryOfficeName,Delivery Office

attributeDisplayNames = url,Web Page Address

treatAsLeaf=True

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ


С наиболее свежей информацией о Windows NT Server можно познакомиться на сайте http://www.microsoft.com/ntserver, а также посетив электронную конференцию Windows NT Server Forum в сети Microsoft Network (GO WORD: MSNTS).

 

Подробную информацию о программировании Компонентной модели объектов (COM), консоли управления (MMC) и Active directory можно найти в документации к пакету Microsoft Windows Platform SDK.