Udostępnij za pośrednictwem


Klasa obiektu i kategoria obiektów

Każde wystąpienie klasy obiektu ma wielowartościową właściwość objectClass, która identyfikuje klasę, której obiekt jest wystąpieniem, a także wszystkie klasy strukturalne lub abstrakcyjne, z których pochodzi ta klasa. W związku z tym właściwość objectClass obiektu użytkownika identyfikuje , osoby, organizacyjnejPersoni klasyużytkownika. Właściwość objectClass nie zawiera klas pomocniczych na liście. System ustawia wartość objectClass podczas tworzenia wystąpienia obiektu i nie można go zmienić.

Każde wystąpienie klasy obiektu ma również właściwość objectCategory, która jest właściwością o pojedynczej wartości, która zawiera nazwę wyróżniającą klasy, której obiekt jest wystąpieniem lub jedną z jego superklas. Po utworzeniu obiektu system ustawia właściwość objectCategory na wartość określoną przez właściwość defaultObjectCategory klasy obiektów. Nie można zmienić właściwości objectCategory obiektu.

Aby uzyskać więcej informacji i przykład kodu, który pobiera właściwość objectClass obiektu, zobacz Pobieranie atrybutu objectClass.

Ważny

Przed systemem Windows Server 2008 atrybut objectClassnie jest indeksowany. Jest to spowodowane tym, że ma wiele wartości i jest wysoce nietypowe; oznacza to, że każde wystąpienie atrybutu objectClass zawiera najwyższej klasy. Oznacza to, że indeks byłby bardzo duży i nieskuteczny. Aby zlokalizować obiekty danej klasy, użyj atrybutu objectCategory, który jest jednowartościowy i indeksowany. Aby uzyskać więcej informacji na temat używania tych właściwości w filtrach wyszukiwania, zobacz Decydowanie o tym, co należy znaleźć.

 

W przypadku większości klas defaultObjectCategory jest nazwą wyróżniającą obiektu klasySchema klasy. Na przykład defaultObjectCategory dla klasy organizacyjnejUnit to "CN=Organizational-Unit,CN=Schema,CN=Configuration,<DC=forestroot>". Jednak niektóre klasy odnoszą się do innej klasy jako ich defaultObjectCategory. Dzięki temu zapytanie może łatwo znaleźć grupy powiązanych obiektów, nawet jeśli mają różne klasy. Na przykład klasaużytkownika, osoba, organizacjiPersoni klasy kontaktów identyfikują klasę osoby w defaultObjectCategory właściwości. Dzięki temu filtry wyszukiwania, takie jak (objectCategory=person), umożliwiają lokalizowanie wystąpień wszystkich tych klas za pomocą pojedynczego zapytania. Zapytania dotyczące osób są bardzo powszechne, dlatego jest to prosta optymalizacja.

Jeśli tworzysz podklasę na podstawie klasy strukturalnej, najlepszym rozwiązaniem jest ustawienie wartości defaultObjectCategory nowej klasy na tę samą nazwę wyróżniającą superklasy. Dzięki temu standardowy interfejs użytkownika może "znaleźć" podklasę.