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.
Dialekt LDAP to format instrukcji zapytań, które używają składni filtru LDAP. Użyj instrukcji zapytania LDAP z następującymi interfejsami wyszukiwania ADSI:
- Interfejsy ActiveX Data Object (ADO), które są interfejsami automatyzacji korzystającymi z OLE DB.
- OLE DB , który jest zestawem interfejsów C/C++ do wykonywania zapytań dotyczących baz danych.
- IDirectorySearch, który jest interfejsem C/C++ dla usługi Active Directory.
Ciąg dialektu LDAP składa się z czterech części oddzielonych średnikami (;).
Podstawowa nazwa wyróżniająca. Na przykład:
<LDAP://DC=Fabrikam,DC=COM>Filtry wyszukiwania LDAP. Aby uzyskać więcej informacji na temat filtrów wyszukiwania, zobacz Składnia filtru wyszukiwania.
Nazwa wyświetlana LDAP atrybutów do pobrania. Wiele atrybutów jest rozdzielonych przecinkami.
Określa zakres wyszukiwania. Prawidłowe wartości to "base", "onelevel" i "subtree". Zakres określony w ciągu zapytania LDAP zastępuje dowolny zakres wyszukiwania określony za pomocą właściwości "SearchScope" obiektu polecenia ADO.
Poniżej znajduje się przykład kodu dialektu LDAP w narzędziu ADSI, który wyszukuje wszystkie obiekty w poddrzewie.
"<LDAP://DC=Fabrikam,DC=com>;(objectClass=*);AdsPath, cn;subTree"
Nie wszystkie opcje wyszukiwania (na przykład rozmiar strony wyszukiwania) można wyrazić w dialektze LDAP, dlatego należy ustawić opcje przed rozpoczęciem rzeczywistego wykonywania zapytania.
Przykładowy kod do wykonywania zapytania LDAP
Poniższy przykład kodu pokazuje, jak używać zapytania LDAP
Dim con As New Connection, rs As New Recordset
Dim adVariant
Dim i 'Used for counter
Dim j 'Used for counter
Dim Com As New Command
Dim strDomain As String
Dim strPassword As String
' Open a Connection object.
con.Provider = "ADsDSOObject"
con.Properties("ADSI Flag") = 1
con.Properties("User ID") = strDomain + "\" + strUserID
con.Properties("Password") = strPassword
con.Open "Active Directory Provider"
' Create a command object on this connection.
Set Com.ActiveConnection = con
' Set the query string.
Com.CommandText = "<LDAP://MyServer/DC=MyDomain,DC=Fabrikam,DC=com>;
(objectClass=*);ADsPath, objectclass;base"
' Set search preferences.
Com.Properties("Page Size") = 1000
Com.Properties("Timeout") = 30 'seconds
' Execute the query.
Set rs = Com.Execute
' Navigate the record set.
rs.MoveFirst
While Not rs.EOF
For i = 0 To rs.Fields.Count - 1
If rs.Fields(i).Type = adVariant And Not (IsNull(rs.Fields(i).Value)) Then
Debug.Print rs.Fields(i).Name, " = "
For j = LBound(rs.Fields(i).Value) To UBound(rs.Fields(i).Value)
Debug.Print rs.Fields(i).Value(j), " # "
Next j
Else
Debug.Print rs.Fields(i).Name, " = ", rs.Fields(i).Value
End If
Next i
rs.MoveNext
Wend
rs.MoveLast
Debug.Print "No. of rows = ", rs.RecordCount
Aby uzyskać szczegółowe informacje na temat składni zapytania, zobacz składni filtru wyszukiwania.
Tematy pokrewne
-
wyszukiwanie za pomocą obiektów danych ActiveX
-
wyszukiwanie za pomocą OLE DB