CoQueryProxyBlanket
9/8/2008
Essa função recupera o informações sobre autenticação o cliente usa para fazer chamadas no proxy especificado.
Syntax
HRESULT CoQueryProxyBlanket(
IUnknown* pProxy,
DWORD* pAuthnSvc,
DWORD* pAuthzSvc,
OLECHAR** pServerPrincName,
DWORD* pAuthnLevel,
DWORD* pImpLevel,
RPC_AUTH_IDENTITY_HANDLE* ppAuthInfo,
DWORD* pCapabilities
);
Parameters
- pProxy
[no] Ponteiro indicando o proxy para consulta. Para obter mais informações, consulte a seção " Comentários ".
pAuthnSvc
[out] Ponteiro para um DWORD valor definindo o atual serviço autenticação. Esse será um único valor extraído a lista de RPC_C_AUTHN_XXX Constantes.Pode ser NULL, no qual maiúsculas e minúsculas o atual serviço autenticação não é recuperado.
pAuthzSvc
[out] Ponteiro para um DWORD valor definindo o atual serviço autorização. Esse será um único valor extraído a lista de RPC_C_AUTHZ_XXX Constantes.Pode ser NULL, no qual maiúsculas e minúsculas o atual serviço autorização não é recuperado.
pServerPrincName
[out] Ponteiro para o atual principal nome. O seqüência de caracteres serão alocada pelo receptor usando CoTaskMemAlloc e deve ser liberada pelo chamador usando CoTaskMemFree Quando eles são feitos com ele. Observe que o real principal nome é retornado. O sinalizador EOAC_MAKE_FULLSIC não é aceito para converter o principal nome.Pode ser NULL, no qual maiúsculas e minúsculas o principal nome não for recuperado.
pAuthnLevel
[out] Ponteiro para um DWORD valor definindo o atual nível de autenticação. Esse será um único valor extraído a lista de RPC_C_AUTHN_LEVEL_XXX Constantes.Pode ser NULL, no qual maiúsculas e minúsculas o atual nível de autenticação não é recuperado.
pImpLevel
[out] Ponteiro para um DWORD valor definindo o atual representação nível. Esse será um único valor extraído a lista de RPC_C_IMP_LEVEL_XXX Constantes.Pode ser NULL, no qual maiúsculas e minúsculas o atual representação nível não é recuperado. Ao usar NTLMSSP, esse valor pode ser RPC_IMP_LEVEL_IDENTIFY ou RPC_IMP_LEVEL_IMPERSONATE.
Ao usar Kerberos, ele irá ser RPC_IMP_LEVEL_IDENTIFY, RPC_IMP_LEVEL_IMPERSONATE ou RPC_C_IMP_LEVEL_DELEGATE.
ppAuthInfo
[out] Ponteiro para o valor ponteiro indicando a identidade do cliente que foi passado to the last IClientSecurity::SetBlanket chamar (ou o valor usar como padrão).Valores padrão são somente válido até que o proxy é lançada.
Se nenhum SetBlanket chamar substituído em aberto de segurança de usar como padrão, e se o cliente especificou uma estrutura para o atual serviço autenticação in a pAuthInfo parâmetro para CoInitializeSecurity, que valor será retornado.
Porque isso aponta para o valor próprio e não é um copiar, ele não deve ser manipulado ou liberado.
pCapabilities
[out] Ponteiro para um DWORD dos sinalizadores indicando as capacidades do proxy.Pode ser NULL, no qual maiúsculas e minúsculas os sinalizadores não são recuperados.
Return Value
- S_OK
O sucesso.
- E_INVALIDARG
Um ou mais argumentos estão inválido.
- E_OUTOFMEMORY
Memória insuficiente para criar o pServerPrincName Saída-parâmetro.
Remarks
CoQueryProxyBlanket é chamado, o cliente para recuperar o informações sobre autenticação COM usará em chamadas feitas a partir de proxy especificado. Essa função encapsula a seguinte seqüência de comum chama (manipulação de erro excluídos).
pProxy->QueryInterface(IID_IClientSecurity, (void**)&pcs);
pcs->QueryBlanket(pProxy, pAuthnSvc, pAuthzSvc, pServerPrincName,
pAuthnLevel, pImpLevel, ppAuthInfo, pCapabilities);
pcs->Release();
Chama esta seqüência Falha de QueryInterface Sobre o proxy para get um ponteiro para IClientSecuritye com o ponteiro resultante, chamadas IClientSecurity::QueryBlankete depois libera o ponteiro.
Usa seu aplicativo pProxy Para transmitir qualquer proxy, such as um proxy obtido através um chamar para CoCreateInstance, CoUnmarshalInterface, ou para transmitir um ponteiro para qualquer interface. O aplicativo não pode transmitir um ponteiro para algo que não é um proxy. Portanto, ele não é possível transmitir um ponteiro para uma interface que possui o local palavra-chave em sua definição interface, porque nenhum proxy é criado para tal uma interface. Um ponteiro para IUnknown é a exceção a essa regra.
Para determinar se a plataforma oferece suporte a essa função, consulte Determinando suporte COM APIs.
Requirements
Header | objbase.h |
Library | ole32.lib |
Windows Embedded CE | Windows CE 3.0 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |