쿼리 필터 구문 확인
LDAP API는 간단한 구문 확인 함수를 제공합니다. 필터에 지정된 속성의 존재가 아니라 구문만 확인합니다.
다음 함수는 쿼리 필터의 구문을 확인하고 필터가 유효한 경우 S_OK 반환하거나 그렇지 않은 경우 S_FALSE 반환합니다.
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;
}