Condividi tramite


Lettura dello schema astratto

Questo argomento fornisce un esempio di codice e linee guida per la lettura dallo schema astratto, che fornisce un subset dei dati archiviati nel attributeSchema e classSchema oggetti nel contenitore dello schema. Per recuperare i dati non disponibili nello schema astratto, leggi i dati direttamente dal contenitore dello schema come descritto in Lettura degli oggetti attributoSchema e classSchema.

Usare la stringa di associazione "LDAP://schema" per eseguire l'associazione a un IADsContainer puntatore nello schema astratto. Usare questo puntatore per enumerare le voci di classe, attributo e sintassi nello schema astratto. È anche possibile usare il metodo IADsContainer.GetObject per recuperare singole voci.

// 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")

Usare una stringa di associazione simile, "LDAP://schema/<oggetto>", per eseguire il binding diretto a una classe o a una voce di attributo nello schema astratto. In questa stringa "<oggetto>" è il lDAPDisplayName di una classe o di un attributo. Per le classi, esegui il binding all'interfaccia IADsClass; per gli attributi, esegui il binding all'interfaccia IADsProperty.

// 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")

Inoltre, l'interfaccia IADs fornisce la proprietà IADs.Schema. Questa proprietà restituisce ADsPath per la classe oggetto in formato stringa di associazione dello schema astratto. Se si dispone di un puntatore IADs a un oggetto, puoi associare la sua classe nello schema astratto usando l'ADsPath restituito da IADs.Schema.

Per le classi, nella tabella seguente sono elencate le proprietà chiave fornite dallo schema astratto.

Proprietà Significato
IADsClass.Abstract Indica se si tratta di una classe astratta.
IADsClass.Auxiliary Indica se si tratta di una classe ausiliaria.
IADsClass.AuxDerivedFrom Matrice di classi ausiliarie da cui deriva questa classe.
IADsClass.Container Indica se gli oggetti di questa classe possono contenere altri oggetti, il che è vero se una qualsiasi classe include questa classe nel suo elenco di possibiliSuperiors.
IADsClass.DerivedFrom Matrice di classi da cui deriva questa classe.
IADsClass.MandatoryProperties Recupera una matrice delle proprietà obbligatorie che devono essere impostate per un'istanza della classe . L'elenco restituito include tutti i valori mustContain e systemMustContain per la classe e le classi da cui deriva, incluse le superclassi e le classi ausiliarie.
IADsClass.OID Recupera l'ID di governs della classe.
IADsClass.OptionalProperties Recupera una matrice delle proprietà facoltative che potrebbero essere impostate per un'istanza della classe . L'elenco restituito include tutti i valori mayContain e systemMayContain per la classe e le classi da cui deriva, incluse le superclassi e le classi ausiliarie.
IADsClass.PossibleSuperiors Recupera una matrice del possibiliSuperiors valori per la classe , che indica le classi oggetto che possono contenere oggetti di questa classe.

 

Lo schema astratto viene archiviato nel sottoSchema oggetto nel contenitore dello schema. Per ottenere il nome distinto dell'oggetto subSchema, collegarsi a rootDSE e leggere l'attributo subSchemaSubEntry, come descritto in Serverless Binding e RootDSE. Tenere presente che è più efficiente leggere lo schema astratto tramite l'associazione a "LDAP://schema", rispetto all'associazione direttamente all'oggetto subSchema.