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 |