Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Niniejszy temat zawiera przykład fragmentu kodu i wskazówki dotyczące odczytywania ze schematu abstrakcyjnego, który dostarcza podzbiór danych przechowywanych w obiektach attributeSchema i classSchema w kontenerze schematu. Aby pobrać dane niedostępne w schemacie abstrakcyjnym, należy odczytać dane bezpośrednio z kontenera schematu zgodnie z opisem w Reading attributeSchema i classSchema Objects.
Użyj ciągu powiązania "LDAP://schema", aby powiązać go z wskaźnikiem IADsContainer w schemacie abstrakcyjnym. Użyj tego wskaźnika, aby wyliczyć wpisy klasy, atrybutu i składni w schemacie abstrakcyjnym. Możesz również użyć metody IADsContainer.GetObject, aby pobrać poszczególne wpisy.
// 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")
Użyj podobnego ciągu powiązania "LDAP://schema/<obiekt>", aby powiązać bezpośrednio z wpisem klasy lub atrybutu w schemacie abstrakcyjnym. W tym ciągu "<object>" jest lDAPDisplayName klasy lub atrybutu. W przypadku klas powiązać z interfejsem IADsClass; w przypadku atrybutów powiązać z interfejsem 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")
Ponadto interfejs IADs udostępnia właściwość IADs.Schema . Ta właściwość zwraca ścieżkę ADsPath dla klasy obiektu w formacie ciągu powiązania schematu abstrakcyjnego. Jeśli masz identyfikatory wskaźnika do obiektu, możesz powiązać z nią klasę w schemacie abstrakcyjnym przy użyciu ścieżki ADsPath zwróconej z IADs.Schema.
W przypadku klas w poniższej tabeli wymieniono właściwości klucza udostępniane przez schemat abstrakcyjny.
| Własność | Znaczenie |
|---|---|
| IADsClass.Abstract | Wskazuje, czy jest to klasa abstrakcyjna. |
| IADsClass.Auxiliary | Wskazuje, czy jest to klasa pomocnicza. |
| IADsClass.AuxDerivedFrom | Tablica klas pomocniczych, z których pochodzi ta klasa. |
| IADsClass.Container | Wskazuje, czy obiekty tej klasy mogą zawierać inne obiekty, co jest prawdziwe, jeśli jakakolwiek klasa zawiera tę klasę na liście możliwychSuperiors. |
| IADsClass.DerivedFrom | Tablica klas, z których pochodzi ta klasa. |
| IADsClass.MandatoryProperties | Pobiera tablicę obowiązkowych właściwości, które muszą być ustawione dla wystąpienia klasy. Zwracana lista zawiera wszystkie wartości mustContain i systemMustContain dla klasy oraz klas, z których się wywodzi, w tym superklas i klas pomocniczych. |
| IADsClass.OID | Pobiera identyfikator governsID dla klasy. |
| IADsClass.OptionalProperties | Pobiera tablicę opcjonalnych właściwości, które mogą być ustawione dla wystąpienia klasy. Zwracana lista zawiera wszystkie wartości mayContain i systemMayContain wartości dla klasy i klas, z których pochodzi, w tym superklasy i klas pomocniczych. |
| IADsClass.PossibleSuperiors | Pobiera tablicę możliwychSuperiors wartości dla klasy, która wskazuje klasy obiektów, które mogą zawierać obiekty tej klasy. |
Schemat abstrakcyjny jest przechowywany w obiekcie subSchema w kontenerze schematu. Aby uzyskać nazwę wyróżniającą obiektu subSchema, połącz z rootDSE i odczytaj atrybut subSchemaSubEntry, zgodnie z opisem w Powiązania bezserwerowe i RootDSE. Należy pamiętać, że bardziej wydajne jest odczytywanie schematu abstrakcyjnego przez powiązanie z "LDAP://schema", niż powiązanie bezpośrednio z obiektem subSchema.