Канонизация имен
Вы можете также потребовать канонизации имен. Канонизация это
процесс расширения частичного имени в полное. Полное имя формируется
на основе указанного частичного имени и контекстного имени, заданного
при создании контекста. Если канонизация не действует, то указываемые
имена будут рассматриваться как полные имена.
Например, CN=Olga.OU=Researching.O=Alpha - это полное имя с заданными
типами. Olga - это безтиповое сокращенное имя того же объекта,
если контекстом является OU=Researching.O=Alpha. Если задается
канонизация, и имя контекста устанавливается в OU=Researching.O=Alpha,
то при спецификации объекта можно использовать Olga. По умолчанию
такие сокращения разрешаются. Они задаются с помощью флага DCV_CANONICALIZE_NAMES.
Не путайте сокращения канонических имен с использование кратких
форм объектных типов. Common Name - это имя атрибута с краткой
формой CN. Независимо от установок флагов, вместо Common Name
вы всегда можете использовать CN. Если вы выберите полный тип
спецификации имен, таких как Common Name, то следует убедиться
в действии канонизации. Это связано с тем, что Directory Server
при работе с полными именами использует краткую форму имени атрибута
(такую как CN). Маршрут кода для выполнения канонизации - это
маршрут кода, преобразующий длинные имена атрибутов в их краткую
форму. Если длинные имена атрибутов, такие как Common Name, не
конвертируются в краткую форму (в данном случае CN), то Directory
Server не будет знать, как обрабатывать полное имя.
Если используется сокращенное имя, такое как Olga, и выполняется
канонизация, то при расширении имени до полной формы соблюдаются
определенные правила. Используемые по умолчанию правила для типизации
объектов в полную именную форму, когда не задаются имена атрибутов,
имеют следующий вид:
- Старшим (наиболее значимым) именем всегда является организация
- Organization (O).
- Если имеется более одного имени, то младшим именем является
Common Name (CN).
- Все промежуточные имена - это подразделения организации Organizational
Units (OU).
Если типы специфицируются, то данные используемые по умолчанию
правила не применяются. Каноническое имя, такое как Olga.Researching.Aplha,
может быть безтиповым, а используемые по умолчанию правила типизации
применяются, если задан флаг контекста для безтиповых имен.
Существуют и другие пути влияния на способ построения полного
имени, но знание данных правил типизации и построения будут отвечать
практически всем вашим потребностям. Более подробные детали в
этой области вы можете найти в комплекте документации для разработчика
NLM.