CoQueryProxyBlanket, fonction (combaseapi.h)

Récupère les informations d’authentification que le client utilise pour effectuer des appels sur le proxy spécifié. Il s’agit d’une fonction d’assistance pour IClientSecurity ::QueryBlanket.

Syntaxe

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
);

Paramètres

[in] pProxy

Pointeur indiquant le proxy à interroger. Ce paramètre ne peut pas être NULL. Pour plus d'informations, consultez la section Notes.

[out, optional] pwAuthnSvc

Pointeur vers une variable qui reçoit le service d’authentification actuel. Il s’agit d’une valeur unique extraite des constantes du service d’authentification. Ce paramètre ne peut pas être NULL.

[out, optional] pAuthzSvc

Pointeur vers une variable qui reçoit le service d’autorisation actuel. Il s’agit d’une valeur unique extraite des constantes d’autorisation. Si l’appelant spécifie NULL, le service d’autorisation actuel n’est pas récupéré.

[out, optional] pServerPrincName

Nom du principal actuel. La chaîne est allouée par l’appelé à l’aide de CoTaskMemAlloc et doit être libérée par l’appelant à l’aide de CoTaskMemFree. L’indicateur EOAC_MAKE_FULLSIC n’est pas accepté dans le paramètre pCapabilities . Pour plus d’informations sur les formulaires msstd et fullsic, consultez Noms principaux. Si l’appelant spécifie NULL, le nom du principal actuel n’est pas récupéré.

[out, optional] pAuthnLevel

Pointeur vers une variable qui reçoit le niveau d’authentification actuel. Il s’agit d’une valeur unique extraite des constantes de niveau d’authentification. Si l’appelant spécifie NULL, le niveau d’authentification actuel n’est pas récupéré.

[out, optional] pImpLevel

Pointeur vers une variable qui reçoit le niveau d’emprunt d’identité actuel. Il s’agit d’une valeur unique extraite des constantes de niveau d’emprunt d’identité. Si l’appelant spécifie NULL, le niveau d’emprunt d’identité actuel n’est pas récupéré.

[out, optional] pAuthInfo

Pointeur vers un handle qui reçoit l’identité du client passé au dernier appel IClientSecurity ::SetBlanket (ou la valeur par défaut). Les valeurs par défaut ne sont valides que jusqu’à ce que le proxy soit libéré. Si l’appelant spécifie NULL, l’identité du client n’est pas récupérée. Le format de la structure à laquelle le handle fait référence dépend du service d’authentification. L’application ne doit pas écrire ou libérer la mémoire. Pour NTLMSSP et Kerberos, si le client a spécifié une structure dans le paramètre pAuthInfo à CoInitializeSecurity, cette valeur est retournée. Pour Schannel, si un certificat pour le client peut être récupéré à partir du gestionnaire de certificats, cette valeur est retournée ici. Sinon, null est retourné. Voir RPC_AUTH_IDENTITY_HANDLE.

[out, optional] pCapabilites

Pointeur vers une variable qui reçoit les fonctionnalités du proxy. Si l’appelant spécifie NULL, les indicateurs de fonctionnalité actuels ne sont pas récupérés.

Valeur retournée

Cette fonction peut retourner les valeurs de retour standard E_INVALIDARG, E_OUTOFMEMORY et S_OK.

Remarques

CoQueryProxyBlanket est appelé par le client pour récupérer les informations d’authentification que COM utilisera sur les appels effectués à partir du proxy spécifié. Cette fonction encapsule la séquence suivante d’appels courants (gestion des erreurs exclue) :

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

Cette séquence appelle QueryInterface sur le proxy pour obtenir un pointeur vers IClientSecurity et, avec le pointeur résultant, appelle IClientSecurity ::QueryBlanket , puis libère le pointeur.

Dans pProxy, vous pouvez passer n’importe quel proxy, tel qu’un proxy que vous obtenez via un appel à CoCreateInstance ou CoUnmarshalInterface, ou vous pouvez passer un pointeur d’interface. Il peut s’agir de n’importe quelle interface. Vous ne pouvez pas passer un pointeur vers quelque chose qui n’est pas un proxy. Par conséquent, vous ne pouvez pas passer un pointeur vers une interface qui a le mot clé local dans sa définition d’interface, car aucun proxy n’est créé pour une telle interface. IUnknown est l’exception à cette règle.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête combaseapi.h (inclure Objbase.h)
Bibliothèque Ole32.lib
DLL Ole32.dll

Voir aussi

CoQueryClientBlanket

CoSetProxyBlanket

IClientSecurity ::QueryBlanket

Sécurité dans COM