Função CoQueryClientBlanket (combaseapi.h)
Chamado pelo servidor para saber mais sobre o cliente que invocou o método em execução no thread atual. Essa é uma função auxiliar para IServerSecurity::QueryBlanket.
Sintaxe
HRESULT CoQueryClientBlanket(
[out, optional] DWORD *pAuthnSvc,
[out, optional] DWORD *pAuthzSvc,
[out, optional] LPOLESTR *pServerPrincName,
[out, optional] DWORD *pAuthnLevel,
[out, optional] DWORD *pImpLevel,
[out, optional] RPC_AUTHZ_HANDLE *pPrivs,
[in, out, optional] DWORD *pCapabilities
);
Parâmetros
[out, optional] pAuthnSvc
Um ponteiro para uma variável que recebe o serviço de autenticação atual. Esse será um único valor obtido das constantes de serviço de autenticação. Se o chamador especificar NULL, o serviço de autenticação atual não será recuperado.
[out, optional] pAuthzSvc
Um ponteiro para uma variável que recebe o serviço de autorização atual. Esse será um único valor obtido das constantes de autorização. Se o chamador especificar NULL, o serviço de autorização atual não será recuperado.
[out, optional] pServerPrincName
O nome da entidade de segurança atual. A cadeia de caracteres será alocada pelo chamador usando CoTaskMemAlloc e deverá ser liberada pelo chamador usando CoTaskMemFree. Por padrão, os nomes de entidade de segurança do Schannel estarão no formulário msstd. O formulário completo será retornado se EOAC_MAKE_FULLSIC for especificado no parâmetro pCapabilities . Para obter mais informações sobre os formulários msstd e fullsic, consulte Nomes de entidade de segurança. Se o chamador especificar NULL, o nome da entidade de segurança atual não será recuperado.
[out, optional] pAuthnLevel
Um ponteiro para uma variável que recebe o nível de autenticação atual. Esse será um único valor obtido das constantes de nível de autenticação. Se o chamador especificar NULL, o nível de autenticação atual não será recuperado.
[out, optional] pImpLevel
Esse parâmetro deve ser NULL.
[out, optional] pPrivs
Um ponteiro para um identificador que recebe as informações de privilégio para o aplicativo cliente. O formato da estrutura à qual o identificador se refere depende do serviço de autenticação. O aplicativo não deve gravar nem liberar a memória. As informações são válidas apenas pela duração da chamada atual. Para NTLMSSP e Kerberos, essa é uma cadeia de caracteres que identifica a entidade de segurança do cliente. Para o Schannel, essa é uma estrutura CERT_CONTEXT que representa o certificado do cliente. Se o cliente não tiver certificado, NULL será retornado. Se o chamador especificar NULL, as informações de privilégio atuais não serão recuperadas. Consulte RPC_AUTHZ_HANDLE.
[in, out, optional] pCapabilities
Um ponteiro para retornar sinalizadores que indicam os recursos da chamada. Para solicitar que o nome da entidade de segurança seja retornado de forma completa se Schannel for o serviço de autenticação, o chamador poderá definir o sinalizador EOAC_MAKE_FULLSIC nesse parâmetro. Se o chamador especificar NULL, os recursos atuais não serão recuperados.
Valor retornado
Essa função pode retornar os valores de retorno padrão E_INVALIDARG, E_OUTOFMEMORY e S_OK.
Comentários
CoQueryClientBlanket é chamado pelo servidor para obter informações de segurança sobre o cliente que invocou o método em execução no thread atual. Essa função encapsula a seguinte sequência de chamadas comuns (tratamento de erro excluído):
CoGetCallContext(IID_IServerSecurity, (void**)&pss);
pss->QueryBlanket(pAuthnSvc, pAuthzSvc, pServerPrincName,
pAuthnLevel, pImpLevel, pPrivs, pCapabilities);
pss->Release();
Essa sequência chama CoGetCallContext para obter um ponteiro para IServerSecurity e, com o ponteiro resultante, chama IServerSecurity::QueryBlanket e libera o ponteiro.
Requisitos
Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | combaseapi.h (inclua Objbase.h) |
Biblioteca | Ole32.lib |
DLL | Ole32.dll |