Freigeben über


Lesen des abstrakten Schemas

Dieses Thema enthält ein Codebeispiel und Richtlinien für das Lesen aus dem abstrakten Schema, das eine Teilmenge der Daten bereitstellt, die in den attributeSchema - und classSchema-Objekten im Schemacontainer gespeichert sind. Um Daten abzurufen, die im abstrakten Schema nicht verfügbar sind, lesen Sie die Daten direkt aus dem Schemacontainer, wie unter Lesen von attributeSchema- und classSchema-Objekten beschrieben.

Verwenden Sie die Bindungszeichenfolge "LDAP://schema", um eine Bindung an einen IADsContainer-Zeiger im abstrakten Schema zu erstellen. Verwenden Sie diesen Zeiger, um die Klassen-, Attribut- und Syntaxeinträge im abstrakten Schema aufzulisten. Sie können auch die IADsContainer.GetObject-Methode verwenden, um einzelne Einträge abzurufen.

// Bind to the abstract schema.
IADsContainer *pAbsSchema = NULL;
hr = ADsGetObject(L"LDAP://schema",
                  IID_IADsContainer,
                  (void**)&pAbsSchema);
' Bind to the abstract schema.
Dim adschema As IADsContainer
Set adschema = GetObject("LDAP://schema")

Verwenden Sie eine ähnliche Bindungszeichenfolge, "LDAP://schema/< object>", um direkt an einen Klassen- oder Attributeintrag im abstrakten Schema zu binden. In dieser Zeichenfolge ist "<object>" der lDAPDisplayName einer Klasse oder eines Attributs. Für Klassen eine Bindung an die IADsClass-Schnittstelle ; binden Sie für Attribute an die IADsProperty-Schnittstelle .

// Bind to the user class entry in the abstract schema.
IADsClass *pClass;
hr = ADsGetObject(L"LDAP://schema/user",
                  IID_IADsClass,
                  (void**)&pClass);
Bind to the user class entry in the abstract schema.
Dim userclass As IADsClass
Set userclass = GetObject("LDAP://schema/user")

Darüber hinaus stellt die IADs-Schnittstelle die IADs.Schema-Eigenschaft bereit. Diese Eigenschaft gibt den ADsPath für die Objektklasse im abstrakten Schemabindungszeichenfolgenformat zurück. Wenn Sie über einen IADs-Zeiger auf ein Objekt verfügen, können Sie mit dem von IADs.Schema zurückgegebenen ADsPath eine Bindung an dessen Klasse im abstrakten Schema herstellen.

Für Klassen sind in der folgenden Tabelle die wichtigsten Eigenschaften aufgeführt, die vom abstrakten Schema bereitgestellt werden.

Eigenschaft Bedeutung
IADsClass.Abstract Gibt an, ob es sich um eine abstrakte Klasse handelt.
IADsClass.Auxiliary Gibt an, ob es sich um eine Hilfsklasse handelt.
IADsClass.AuxDerivedFrom Array von Hilfsklassen, von der diese Klasse abgeleitet wird.
IADsClass.Container Gibt an, ob Objekte dieser Klasse andere Objekte enthalten können, was true ist, wenn eine Klasse diese Klasse in die Liste der möglichenSuperiors einschließt.
IADsClass.DerivedFrom Array von Klassen, von denen diese Klasse abgeleitet wird.
IADsClass.MandatoryProperties Ruft ein Array der obligatorischen Eigenschaften ab, die für eine instance der -Klasse festgelegt werden müssen. Die zurückgegebene Liste enthält alle mustContain- und systemMustContain-Werte für die Klasse und die Klassen, von denen sie abgeleitet wird, einschließlich Superklassen und Hilfsklassen.
IADsClass.OID Ruft die governsID der -Klasse ab.
IADsClass.OptionalProperties Ruft ein Array der optionalen Eigenschaften ab, die für eine instance der -Klasse festgelegt werden können. Die zurückgegebene Liste enthält alle mayContain- und systemMayContain-Werte für die Klasse und die Klassen, von denen sie abgeleitet wird, einschließlich Superklassen und Hilfsklassen.
IADsClass.PossibleSuperiors Ruft ein Array der possibleSuperiors-Werte für die -Klasse ab, das die Objektklassen angibt, die Objekte dieser Klasse enthalten können.

 

Das abstrakte Schema wird im subSchema-Objekt im Schemacontainer gespeichert. Um den distinguished Name des subSchema-Objekts abzurufen, binden Sie an rootDSE, und lesen Sie das subSchemaSubEntry-Attribut , wie unter Serverlose Bindung und RootDSE beschrieben. Beachten Sie, dass es effizienter ist, das abstrakte Schema durch Bindung an "LDAP://schema" zu lesen, als durch direkte Bindung an das subSchema-Objekt .