Función CoQueryProxyBlanket (combaseapi.h)
Recupera la información de autenticación que usa el cliente para realizar llamadas en el proxy especificado. Se trata de una función auxiliar para IClientSecurity::QueryBlanket.
Sintaxis
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
Puntero que indica el proxy que se va a consultar. Este parámetro no puede ser NULL. Para obtener más información, vea la sección Comentarios.
[out, optional] pwAuthnSvc
Puntero a una variable que recibe el servicio de autenticación actual. Este será un valor único tomado de las constantes del servicio de autenticación. Este parámetro no puede ser NULL.
[out, optional] pAuthzSvc
Puntero a una variable que recibe el servicio de autorización actual. Se trata de un único valor tomado de las constantes de autorización. Si el autor de la llamada especifica NULL, el servicio de autorización actual no se recupera.
[out, optional] pServerPrincName
Nombre principal actual. El autor de la llamada asignará la cadena mediante CoTaskMemAlloc y el autor de la llamada debe liberarla mediante CoTaskMemFree. La marca EOAC_MAKE_FULLSIC no se acepta en el parámetro pCapabilities . Para obtener más información sobre los formularios msstd y fullsic, vea Nombres principales. Si el autor de la llamada especifica NULL, no se recupera el nombre principal actual.
[out, optional] pAuthnLevel
Puntero a una variable que recibe el nivel de autenticación actual. Se trata de un único valor tomado de las constantes de nivel de autenticación. Si el autor de la llamada especifica NULL, no se recupera el nivel de autenticación actual.
[out, optional] pImpLevel
Puntero a una variable que recibe el nivel de suplantación actual. Se trata de un único valor tomado de las constantes de nivel de suplantación. Si el autor de la llamada especifica NULL, no se recupera el nivel de suplantación actual.
[out, optional] pAuthInfo
Puntero a un identificador que recibe la identidad del cliente que se pasó a la última llamada IClientSecurity::SetBlanket (o el valor predeterminado). Los valores predeterminados solo son válidos hasta que se libere el proxy. Si el autor de la llamada especifica NULL, no se recupera la identidad del cliente. El formato de la estructura a la que hace referencia el identificador depende del servicio de autenticación. La aplicación no debe escribir ni liberar la memoria. Para NTLMSSP y Kerberos, si el cliente especificó una estructura en el parámetro pAuthInfo en CoInitializeSecurity, se devuelve ese valor. Para Schannel, si se puede recuperar un certificado para el cliente del administrador de certificados, ese valor se devuelve aquí. De lo contrario, se devuelve NULL . Consulte RPC_AUTH_IDENTITY_HANDLE.
[out, optional] pCapabilites
Puntero a una variable que recibe las funciones del proxy. Si el autor de la llamada especifica NULL, no se recuperan las marcas de funcionalidad actuales.
Valor devuelto
Esta función puede devolver los valores devueltos estándar E_INVALIDARG, E_OUTOFMEMORY y S_OK.
Comentarios
El cliente llama a CoQueryProxyBlanket para recuperar la información de autenticación COM que usará en las llamadas realizadas desde el proxy especificado. Esta función encapsula la siguiente secuencia de llamadas comunes (se excluye el control de errores):
pProxy->QueryInterface(IID_IClientSecurity, (void**)&pcs);
pcs->QueryBlanket(
pProxy, pAuthnSvc, pAuthzSvc, pServerPrincName, pAuthnLevel, pImpLevel, ppAuthInfo, pCapabilities
);
pcs->Release();
Esta secuencia llama a QueryInterface en el proxy para obtener un puntero a IClientSecurity y, con el puntero resultante, llama a IClientSecurity::QueryBlanket y, a continuación, libera el puntero.
En pProxy, puede pasar cualquier proxy, como un proxy que obtenga a través de una llamada a CoCreateInstance o CoUnmarshalInterface, o puede pasar un puntero de interfaz. Puede ser cualquier interfaz. No se puede pasar un puntero a algo que no sea un proxy. Por lo tanto, no se puede pasar un puntero a una interfaz que tenga la palabra clave local en su definición de interfaz porque no se crea ningún proxy para dicha interfaz. IUnknown es la excepción a esta regla.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | combaseapi.h (incluya Objbase.h) |
Library | Ole32.lib |
Archivo DLL | Ole32.dll |