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.