Класс объекта и категория объектов

Каждый экземпляр класса объектов имеет многозначное свойство objectClass , определяющее класс, из которого объект является экземпляром, а также все структурные или абстрактные суперклассы, от которых производный этот класс. Таким образом, свойство objectClass объекта пользователя будет определять верхние, person, организационныеperson и пользовательские классы. Свойство objectClass не включает вспомогательные классы в список. Система задает значение objectClass при создании экземпляра объекта и его невозможно изменить.

Каждый экземпляр класса объектов также имеет свойство objectCategory , которое является однозначным свойством, которое содержит различающееся имя класса, из которого объект является экземпляром или одним из его суперклассов. При создании объекта система задает свойству objectCategory значение, заданное свойством defaultObjectCategory класса объекта. Невозможно изменить свойство objectCategory объекта.

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

Важно!

До Windows Server 2008 атрибут objectClass не индексируется. Это связано с тем, что он имеет несколько значений и очень не является уникальным; То есть каждый экземпляр атрибута objectClass включает в себя верхний класс. Это означает, что индекс будет очень большим и неэффективным. Чтобы найти объекты заданного класса, используйте атрибут objectCategory , который является однозначным и индексируемым. Дополнительные сведения об использовании этих свойств в фильтрах поиска см. в разделе "Выбор того, что нужно найти".

 

Для большинства классов значение defaultObjectCategory — это различающееся имя объекта classSchema класса. Например, значение defaultObjectCategory для класса организацииUnit — CN=Organizational-Unit, CN=Schema,CN=Configuration,DC<=forestroot>. Однако некоторые классы относятся к другому классу как defaultObjectCategory. Это позволяет запросу легко находить группы связанных объектов, даже если они имеют разные классы. Например, пользователи, сотрудники, организационные сотрудники и классы контактов определяют класс person в свойствах defaultObjectCategory. Это позволяет фильтрам поиска, таким как (objectCategory=person), находить экземпляры всех этих классов с одним запросом. Запросы для людей очень распространены, поэтому это простая оптимизация.

При создании подкласса из структурного класса рекомендуется задать значение defaultObjectCategory нового класса таким же различающемся именем суперкласса. Это позволяет стандартному пользовательскому интерфейсу "найти" подкласс.