Freigeben über


Objektklasse und Objektkategorie

Jede Instanz einer Objektklasse verfügt über eine mehrwertige objectClass -Eigenschaft, die die Klasse identifiziert, von der das Objekt eine Instanz ist, sowie alle strukturellen oder abstrakten Superklassen, von denen diese Klasse abgeleitet wird. Daher würde die objectClass- Eigenschaft eines Benutzerobjekts die obersten, Person, organisationspersonund Benutzer Klassen identifizieren. Die objectClass-eigenschaft enthält keine Hilfsklassen in der Liste. Das System legt den objectClass Wert fest, wenn die Objektinstanz erstellt wird und nicht geändert werden kann.

Jede Instanz einer Objektklasse verfügt auch über eine objectCategory-Eigenschaft, bei der es sich um eine einwertige Eigenschaft handelt, die den distinguishierten Namen der Klasse enthält, von der das Objekt eine Instanz oder eine seiner Superklassen ist. Wenn ein Objekt erstellt wird, legt das System seine objectCategory-Eigenschaft auf den Wert fest, der durch die defaultObjectCategory Eigenschaft der Objektklasse angegeben wird. Die objectCategory-Eigenschaft eines Objekts kann nicht geändert werden.

Weitere Informationen und ein Codebeispiel zum Abrufen der objectClass-eigenschaft eines Objekts finden Sie unter Abrufen des objectClass-Attributs.

Wichtig

Vor Windows Server 2008 wird das objectClass-Attribut nicht indiziert. Dies liegt daran, dass sie mehrere Werte hat und hochgradig nicht eindeutig ist; d. h., jede Instanz des objectClass Attributs enthält die top Klasse. Dies bedeutet, dass ein Index sehr groß und ineffektiv wäre. Um Objekte einer bestimmten Klasse zu suchen, verwenden Sie das objectCategory Attribut, das einwertig und indiziert ist. Weitere Informationen zur Verwendung dieser Eigenschaften in Suchfiltern finden Sie unter Entscheiden, waszu finden ist.

 

Für die meisten Klassen ist die defaultObjectCategory- der distinguished Name des classSchema-Objekts der Klasse. Beispielsweise lautet die defaultObjectCategory- für die organizationalUnit Klasse "CN=Organizational-Unit,CN=Schema,CN=Configuration,<DC=forestroot>". Einige Klassen verweisen jedoch auf eine andere Klasse als ihre defaultObjectCategory. Auf diese Weise kann eine Abfrage problemlos Gruppen verwandter Objekte finden, auch wenn sie von unterschiedlichen Klassen sind. Beispielsweise identifizieren der Benutzer, Person, organizationalPerson, und Kontakt Klassen die Person Klasse in ihren defaultObjectCategory Eigenschaften. Auf diese Weise können Suchfilter wie (objectCategory=person) Instanzen aller diese Klassen mit einer einzigen Abfrage suchen. Abfragen für Personen sind sehr häufig, daher ist dies eine einfache Optimierung.

Wenn Sie eine Unterklasse aus einer Strukturklasse erstellen, empfiehlt es sich, den defaultObjectCategory- Wert der neuen Klasse auf denselben unterschiedenen Namen der Superklasse festzulegen. Auf diese Weise kann die Standard-UI die Unterklasse "suchen".