Compartilhar via


Função CoQueryProxyBlanket (combaseapi.h)

Recupera as informações de autenticação que o cliente usa para fazer chamadas no proxy especificado. Essa é uma função auxiliar para IClientSecurity::QueryBlanket.

Sintaxe

HRESULT CoQueryProxyBlanket(
  [in]            IUnknown                 *pProxy,
  [out, optional] DWORD                    *pwAuthnSvc,
  [out, optional] DWORD                    *pAuthzSvc,
  [out, optional] LPOLESTR                 *pServerPrincName,
  [out, optional] DWORD                    *pAuthnLevel,
  [out, optional] DWORD                    *pImpLevel,
  [out, optional] RPC_AUTH_IDENTITY_HANDLE *pAuthInfo,
  [out, optional] DWORD                    *pCapabilites
);

Parâmetros

[in] pProxy

Um ponteiro que indica o proxy a ser consultado. Esse parâmetro não pode ser NULL. Para obter mais informações, consulte a seção Comentários.

[out, optional] pwAuthnSvc

Um ponteiro para uma variável que recebe o serviço de autenticação atual. Esse será um único valor obtido das constantes do serviço de autenticação. Esse parâmetro não pode ser NULL.

[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 receptor usando CoTaskMemAlloc e deverá ser liberada pelo chamador usando CoTaskMemFree. O sinalizador EOAC_MAKE_FULLSIC não é aceito 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 principal 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

Um ponteiro para uma variável que recebe o nível de representação atual. Esse será um único valor obtido das constantes de nível de representação. Se o chamador especificar NULL, o nível de representação atual não será recuperado.

[out, optional] pAuthInfo

Um ponteiro para um identificador que recebe a identidade do cliente que foi passado para a última chamada IClientSecurity::SetBlanket (ou o valor padrão). Os valores padrão só são válidos até que o proxy seja liberado. Se o chamador especificar NULL, a identidade do cliente não será recuperada. 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. Para NTLMSSP e Kerberos, se o cliente especificou uma estrutura no parâmetro pAuthInfo para CoInitializeSecurity, esse valor será retornado. Para o Schannel, se um certificado para o cliente puder ser recuperado do gerenciador de certificados, esse valor será retornado aqui. Caso contrário, NULL será retornado. Consulte RPC_AUTH_IDENTITY_HANDLE.

[out, optional] pCapabilites

Um ponteiro para uma variável que recebe os recursos do proxy. Se o chamador especificar NULL, os sinalizadores de funcionalidade atuais não serão recuperados.

Retornar valor

Essa função pode retornar os valores retornados padrão E_INVALIDARG, E_OUTOFMEMORY e S_OK.

Comentários

CoQueryProxyBlanket é chamado pelo cliente para recuperar as informações de autenticação que o COM usará em chamadas feitas do proxy especificado. Essa função encapsula a seguinte sequência de chamadas comuns (tratamento de erro excluído):

pProxy->QueryInterface(IID_IClientSecurity, (void**)&pcs);
pcs->QueryBlanket(
    pProxy, pAuthnSvc, pAuthzSvc, pServerPrincName, pAuthnLevel, pImpLevel, ppAuthInfo, pCapabilities
  );
pcs->Release();

Essa sequência chama QueryInterface no proxy para obter um ponteiro para IClientSecurity e, com o ponteiro resultante, chama IClientSecurity::QueryBlanket e libera o ponteiro.

No pProxy, você pode passar qualquer proxy, como um proxy que você obtém por meio de uma chamada para CoCreateInstance ou CoUnmarshalInterface, ou você pode passar um ponteiro de interface. Pode ser qualquer interface. Você não pode passar um ponteiro para algo que não é um proxy. Portanto, você não pode passar um ponteiro para uma interface que tenha o palavra-chave local em sua definição de interface porque nenhum proxy foi criado para essa interface. IUnknown é a exceção a essa regra.

Requisitos

Requisito Valor
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

CoQueryClientBlanket

CoSetProxyBlanket

IClientSecurity::QueryBlanket

Segurança no COM