Compartilhar via


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

Confira também

Cogetcallcontext

CoQueryProxyBlanket

IServerSecurity::QueryBlanket

Segurança no COM