Condividi tramite


Ricerca di dati binari

Anche se la funzionalità di ricerca ADSI supporta solo la ricerca di dati stringa, è possibile cercare dati binari. A tale scopo, utilizzare la funzione ADsEncodeBinaryData per convertire i dati binari in una stringa che può essere usata con i metodi di ricerca. La ricerca di dati binari è particolarmente utile quando si cerca un GUID o un SID perché questi tipi di dati vengono archiviati come dati binari.

Quando si usa la funzione ADsEncodeBinaryData, la memoria allocata deve essere liberata usando la funzione FreeADsMem.

Nell'esempio di codice C++ seguente viene illustrato come compilare una stringa di query per cercare un oggetto con un determinato valore objectGUID .

LPWSTR pwszGuid = NULL;
LPWSTR pwszFormat = L"(objectGUID=%s)";
LPWSTR pwszSearch = NULL;
hr = ADsEncodeBinaryData((LPBYTE)pguid, sizeof(GUID), &pwszGuid);
if(FAILED(hr))
{
    goto cleanup;
}

pwszSearch = new WCHAR[lstrlenW(pwszFormat) + lstrlenW(pwszGuid) + 1];
if(NULL == pwszSearch)
{
    goto cleanup;
}
    
swprintf_s(pwszSearch, pwszFormat, pwszGuid);

// Use pwszSearch to perform a query for the object.

cleanup:    
if(pwszGuid)
{
    FreeADsMem(pwszGuid);
}
if(pwszSearch)
{
    delete pwszSearch;
}