Čtení abstraktního schématu
Toto téma obsahuje příklad kódu a pokyny, jak číst z abstraktního schématu, které poskytuje podmnožinu dat uložených v objektech attributeSchema a classSchema v kontejneru schématu. Pokud chcete načíst data, která nejsou k dispozici v abstraktním schématu, přečtěte si data přímo z kontejneru schématu, jak je popsáno v Čtení atributůSchema a classSchema Objects.
Použijte řetězec "LDAP://schema" k vytvoření vazby na ukazatel IADsContainer na abstraktní schéma. Tento ukazatel použijte k vytvoření výčtu položek třídy, atributu a syntaxe v abstraktním schématu. Také můžete použít metodu IADsContainer.GetObject k načtení jednotlivých položek.
// 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")
K vytvoření vazby přímo k položce třídy nebo atributu v abstraktním schématu použijte podobný řetězec vazby "LDAP://schema/<objekt>". V tomto řetězci je<objekt>" lDAPDisplayName třídy nebo atributu. Pro třídy se připojte k rozhraní IADsClass; pro atributy se připojte k rozhraní 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")
Kromě toho rozhraní IADs poskytuje vlastnost IADs.Schema. Tato vlastnost vrátí ADsPath pro třídu objektu ve formátu řetězce vazby abstraktního schématu. Pokud máte IADs ukazatel na objekt, můžete vytvořit vazbu na jeho třídu v abstraktním schématu pomocí ADsPath vráceného ze IADs.Schema.
Pro třídy uvádí následující tabulka klíčové vlastnosti poskytované abstraktním schématem.
Vlastnost | Význam |
---|---|
IADsClass.Abstract | Určuje, zda se jedná o abstraktní třídu. |
IADsClass.Auxiliary | Určuje, zda se jedná o pomocnou třídu. |
IADsClass.AuxDerivedFrom | Pole pomocných tříd, ze kterých tato třída pochází. |
IADsClass.Container | Určuje, zda objekty této třídy mohou obsahovat jiné objekty, což je true, pokud jakákoli třída obsahuje tuto třídu v seznamu možnéSuperiors. |
IADsClass.DerivedFrom | Pole tříd, ze které je tato třída odvozena. |
IADsClass.MandatoryProperties | Načte pole povinných vlastností, které musí být nastaveny pro instanci třídy. Vrácený seznam obsahuje všechny mustContain a systemMustContain hodnoty pro třídu a třídy, od kterých je odvozena, včetně supertříd a pomocných tříd. |
IADsClass.OID | Načte governsID třídy. |
IADsClass.OptionalProperties | Načte pole volitelných vlastností, které mohou být nastaveny pro instanci třídy. Vrácený seznam obsahuje všechny hodnoty mayContain a systemMayContain pro třídu a třídy, ze kterých je odvozené, včetně nadtříd a pomocných tříd. |
IADsClass.PossibleSuperiors | Načte pole možnéSuperiors hodnoty pro třídu, což označuje třídy objektů, které mohou obsahovat objekty této třídy. |
Abstraktní schéma je uloženo v subSchema objekt v kontejneru schématu. Pokud chcete získat rozlišující název objektu subSchema, připojte se k rootDSE a přečtěte atribut subSchemaSubEntry, jak je popsáno v bezserverové vazbě a rootDSE. Mějte na paměti, že je efektivnější číst abstraktní schéma vazbou na "LDAP://schema", než vazbou přímo na objekt subSchema.