Dela via


Objektklass och objektkategori

Varje instans av en objektklass har en egenskap med flera värden objectClass som identifierar klassen som objektet är en instans av, samt alla strukturella eller abstrakta superklasser som klassen härleds från. Egenskapen objectClass för ett användarobjekt identifierar därför , person, organisationspersonoch användarklasser. Egenskapen objectClass innehåller inte extra klasser i listan. Systemet anger värdet objectClass när objektinstansen skapas och den inte kan ändras.

Varje instans av en objektklass har också en objectCategory egenskap, som är en egenskap med en enda värde som innehåller det unika namnet på antingen den klass där objektet är en instans eller en av dess superklasser. När ett objekt skapas anger systemet sin objectCategory egenskap till det värde som anges av egenskapen defaultObjectCategory för objektklassen. Det går inte att ändra objektets objectCategory egenskap.

Mer information och ett kodexempel som hämtar ett objekts objectClass-egenskap finns i Hämta objektetKlassattributet.

Viktig

Före Windows Server 2008 indexeras inte attributet objectClass. Det beror på att den har flera värden och är mycket icke-unik. Det innebär att varje instans av attributet objectClass innehåller högsta-klassen. Det innebär att ett index skulle vara mycket stort och ineffektivt. Om du vill hitta objekt i en viss klass använder du attributet objectCategory, som är envärdesvärde och indexerad. Mer information om hur du använder dessa egenskaper i sökfilter finns i Deciding What to Find.

 

För de flesta klasser är defaultObjectCategory det unika namnet på klassens classSchema-objekt. Till exempel är defaultObjectCategory för klassen organizationalUnit "CN=Organizational-Unit,CN=Schema,CN=Configuration,<DC=forestroot>". Vissa klasser refererar dock till en annan klass som deras defaultObjectCategory. På så sätt kan en fråga enkelt hitta grupper med relaterade objekt, även om de är av olika klasser. Till exempel användaren, person, organizationalPersonoch kontakta klasser alla identifiera person klass i deras defaultObjectCategory egenskaper. På så sätt kan sökfilter som (objectCategory=person) hitta instanser av alla dessa klasser med en enda fråga. Frågor för personer är mycket vanliga, så det här är en enkel optimering.

Om du skapar en underklass från en strukturell klass är bästa praxis att ange defaultObjectCategory värdet för den nya klassen till samma unika namn som superklassen. På så sätt kan standardgränssnittet "hitta" underklassen.