Freigeben über


Überprüfen der Abfragefiltersyntax

Die LDAP-API bietet eine einfache Syntaxüberprüfungsfunktion. Beachten Sie, dass nur die Syntax und nicht das Vorhandensein der im Filter angegebenen Eigenschaften überprüft wird.

Die folgende Funktion überprüft die Syntax des Abfragefilters und gibt S_OK zurück, wenn der Filter gültig ist, oder S_FALSE, wenn er nicht vorhanden ist.

HRESULT CheckFilterSyntax(
    LPOLESTR szServer, // NULL binds to a DC in the current domain.
    LPOLESTR szFilter) // Filter to check.
{
HRESULT hr = S_OK;
DWORD dwReturn;
LDAP *hConnect = NULL;  // Connection handle
 
if (!szFilter)
  return E_POINTER;
 
// LDAP_PORT is the default port, 389
 
hConnect  = ldap_open(szServer,  LDAP_PORT);
 
// Bind using the preferred authentication method on Windows 2000
// and the calling thread's security context.
 
dwReturn = ldap_bind_s( hConnect, NULL, NULL, LDAP_AUTH_NEGOTIATE );
if (dwReturn==LDAP_SUCCESS) {
    dwReturn = ldap_check_filter(hConnect, szFilter);
    if (dwReturn==LDAP_SUCCESS)
        hr = S_OK;
    else
        hr = S_FALSE;
}
 
// Unbind to free the connection.
 
ldap_unbind( hConnect );
 
return hr;
}