Compartilhar via


função ldap_search_s (winldap.h)

A função ldap_search_s pesquisa de forma síncrona o diretório LDAP e retorna um conjunto solicitado de atributos para cada entrada correspondente.

Sintaxe

WINLDAPAPI ULONG LDAPAPI ldap_search_s(
  [in]  LDAP         *ld,
  [in]  PSTR         base,
  [in]  ULONG        scope,
  [in]  PSTR         filter,
  [in]  PZPSTR       attrs,
  [in]  ULONG        attrsonly,
  [out] PLDAPMessage *res
);

Parâmetros

[in] ld

Identificador de sessão.

[in] base

Ponteiro para uma cadeia de caracteres terminada em nulo que contém o nome diferenciado da entrada na qual iniciar a pesquisa.

[in] scope

Especifica um dos valores a seguir para indicar o escopo da pesquisa.

LDAP_SCOPE_BASE

Pesquise somente a entrada base.

LDAP_SCOPE_ONELEVEL

Pesquise todas as entradas no primeiro nível abaixo da entrada base, excluindo a entrada base.

LDAP_SCOPE_SUBTREE

Pesquise a entrada base e todas as entradas na árvore abaixo da base.

[in] filter

Ponteiro para uma cadeia de caracteres terminada em nulo que especifica o filtro de pesquisa. Para obter mais informações, consulte Sintaxe de filtro de pesquisa.

[in] attrs

Uma matriz terminada em nulo de cadeias de caracteres terminadas em nulo que indica os atributos a serem retornados para cada entrada correspondente. Passe NULL para recuperar todos os atributos disponíveis.

[in] attrsonly

Valor booliano que deve ser zero se os tipos de atributo e os valores forem retornados, diferente de zero se apenas tipos forem necessários.

[out] res

Contém os resultados da pesquisa após a conclusão da chamada. Também pode conter resultados parciais ou dados estendidos quando a chamada de função falhar com um código de erro. Resultados gratuitos retornados com uma chamada para ldap_msgfree quando eles não são mais exigidos pelo aplicativo.

Retornar valor

Se a função for bem-sucedida, o valor retornado será LDAP_SUCCESS.

Se a função falhar, ela retornará um código de erro, no entanto , ldap_search_s poderá falhar e ainda poderá alocar pMsg. Por exemplo, LDAP_PARTIAL_RESULTS e LDAP_REFERRAL código de erro alocam pMsg. Para obter mais informações, consulte o exemplo de código a seguir. Para obter mais informações, consulte Valores retornados.

Comentários

A função ldap_search_s inicia uma pesquisa síncrona.

Use a função ldap_set_option com o identificador de sessão ld para definir as opções de LDAP_OPT_SIZELIMIT, LDAP_OPT_TIMELIMIT e LDAP_OPT_DEREF que determinam como a pesquisa é executada. Para obter mais informações, consulte Opções de sessão.

Após a conclusão da operação de pesquisa, ldap_search_s retorna ao chamador. Use ldap_search para que a operação seja executada de forma assíncrona.

Multithreading: as chamadas para ldap_search_s são thread-safe.

O exemplo de código a seguir mostra como liberar pMsg caso ldap_search_s falhe.

// Initialize return value to NULL.
LDAPMessage *pMsg = NULL;

// Perform the search request.
dwErr = ldap_search_s (i_pldap,
        i_lpszBase,
        i_ulScope,
        i_lpszSearchFilter,
        lpszAttributes,
        0,
        &pMsg
        );

// Cleanup calling parameters.
if (lpszAttributes != NULL)
    delete [] lpszAttributes;

// Convert error code and cleanup pMsg, if necessary.
if (dwErr != LDAP_SUCCESS)
{
    DebugOutLDAPError(i_pldap, dwErr, _T("ldap_search_s"));
    hr = HRESULT_FROM_WIN32(dwErr);

    // Be aware that pMsg can contain valid data, even if the
    // call to ldap_search_s returned an error code.  
    // This can be caused by the server returning codes,
    // such as LDAP_RESULTS_TOO_LARGE or other codes,
    // that indicate that the search returned partial
    // results. The user code can handle these cases
    // if required, this example just frees pMsg on any 
    // error code.

    if (pMsg != NULL)
      ldap_msgfree(pMsg);
}

else
{
    // Process the search results.
    ...
    // Free the results when no longer required.
    if (pMsg != NULL) ldap_msgfree(pMsg);
}

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista
Servidor mínimo com suporte Windows Server 2008
Plataforma de Destino Windows
Cabeçalho winldap.h
Biblioteca Wldap32.lib
DLL Wldap32.dll

Confira também

Funções

LDAP

Valores de retorno

Opções de sessão

ldap_msgfree

ldap_search

ldap_search_ext

ldap_search_ext_s

ldap_search_st