Compartir a través de


Función CoQueryClientBlanket (combaseapi.h)

Llamado por el servidor para averiguar el cliente que invocó el método que se ejecuta en el subproceso actual. Se trata de una función auxiliar para IServerSecurity::QueryBlanket.

Sintaxis

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

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. Si el autor de la llamada especifica NULL, no se recupera el servicio de autenticación actual.

[out, optional] pAuthzSvc

Puntero a una variable que recibe el servicio de autorización actual. Este será un valor único tomado de las constantes de autorización. Si el autor de la llamada especifica NULL, no se recupera el servicio de autorización actual.

[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. De forma predeterminada, los nombres principales de Schannel estarán en el formato msstd. Se devolverá el formulario completo si EOAC_MAKE_FULLSIC se especifica 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. Este será un valor único 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

Este parámetro debe ser NULL.

[out, optional] pPrivs

Puntero a un identificador que recibe la información de privilegios de la aplicación 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. La información solo es válida durante la llamada actual. Para NTLMSSP y Kerberos, se trata de una cadena que identifica la entidad de seguridad de cliente. Para Schannel, se trata de una estructura de CERT_CONTEXT que representa el certificado del cliente. Si el cliente no tiene ningún certificado, se devuelve NULL . Si el autor de la llamada especifica NULL, no se recupera la información de privilegios actual. Consulte RPC_AUTHZ_HANDLE.

[in, out, optional] pCapabilities

Puntero que devuelve marcas que indican las funcionalidades de la llamada. Para solicitar que el nombre de entidad de seguridad se devuelva en formato completo si Schannel es el servicio de autenticación, el autor de la llamada puede establecer la marca EOAC_MAKE_FULLSIC en este parámetro. Si el autor de la llamada especifica NULL, no se recuperan las funcionalidades actuales.

Valor devuelto

Esta función puede devolver los valores devueltos estándar E_INVALIDARG, E_OUTOFMEMORY y S_OK.

Comentarios

El servidor llama a CoQueryClientBlanket para obtener información de seguridad sobre el cliente que invocó el método que se ejecuta en el subproceso actual. Esta función encapsula la siguiente secuencia de llamadas comunes (se excluye el control de errores):

    CoGetCallContext(IID_IServerSecurity, (void**)&pss);
    pss->QueryBlanket(pAuthnSvc, pAuthzSvc, pServerPrincName, 
                pAuthnLevel, pImpLevel, pPrivs, pCapabilities);
    pss->Release();

Esta secuencia llama a CoGetCallContext para obtener un puntero a IServerSecurity y, con el puntero resultante, llama a IServerSecurity::QueryBlanket y, a continuación, libera el puntero.

Requisitos

   
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

Consulte también

CoGetCallContext

CoQueryProxyBlanket

IServerSecurity::QueryBlanket

Seguridad en COM