Perseguição de Referência com IDirectorySearch
Uma referência é o mecanismo que um servidor de diretório usa para direcionar um cliente para outro servidor quando ele não contém dados suficientes sobre o objeto solicitado por uma consulta.
Em uma pesquisa de um nível ou subárvore, as referências são retornadas apenas para contêineres de domínio, esquema ou configuração conhecidos e imediatamente subordinados; ou seja, domínios filhos que são descendentes diretos. Para obter mais informações, consulte Escopo da pesquisa.
Em um diretório, nem todos os dados estão disponíveis em um único servidor, em vez disso, eles são distribuídos em vários servidores diferentes na rede. Se os servidores compartilharem os dados que outros servidores podem fornecer, eles poderão fornecer referências a um cliente quando uma consulta solicitada não puder ser resolvida no servidor de origem. Por exemplo, quando um cliente pede ao Servidor A para consultar um objeto de usuário (U), A pode sugerir que o cliente continue a pesquisa no Servidor B se U não residir em A, mas for identificado como estando em B. O cliente tem a opção de buscar a indicação ou não. As referências isentam o cliente de ter que possuir conhecimento prévio da capacidade de cada servidor, mas o cliente deve especificar o tipo de referências que um servidor deve executar.
Para habilitar ou desabilitar o rastreamento de referência, defina uma opção de pesquisa ADS_SEARCHPREF_CHASE_REFERRALS com um valor ADSTYPE_INTEGER que contenha um dos ADS_CHASE_REFERRALS_ENUM valores de enumeração na matriz ADS_SEARCHPREF_INFO passados para o método IDirectorySearch::SetSearchPreference .
O exemplo de código a seguir mostra como habilitar referências de perseguição.
ADS_SEARCHPREF_INFO SearchPref;
SearchPref.dwSearchPref = ADS_SEARCHPREF_CHASE_REFERRALS;
SearchPref.vValue.dwType = ADSTYPE_INTEGER;
SearchPref.vValue.Integer = ADS_CHASE_REFERRALS_ALWAYS;
Para obter mais informações sobre referências no Active Directory, consulte Referências.