Partager via


Méthode IServerSecurity ::ImpersonateClient (objidl.h)

Permet à un serveur d’emprunter l’identité d’un client pendant la durée d’un appel.

Syntaxe

HRESULT ImpersonateClient();

Valeur de retour

Si la méthode réussit, la valeur de retour est S_OK. Sinon, c’est E_FAIL.

Remarques

En règle générale, une méthode s’exécute sur un thread qui utilise le jeton d’accès du processus. Toutefois, lors de l’emprunt d’identité d’un client, le serveur s’exécute dans le contexte de sécurité du client afin que le serveur ait accès aux ressources auxquelles le client a accès. Lorsque l’emprunt d’identité est nécessaire, le serveur appelle la méthode ImpersonateClient pour qu’un jeton d’accès représentant les informations d’identification du client soit affecté au thread actuel. Ce jeton de thread est utilisé pour les vérifications d’accès. RevertToSelf restaure le jeton d’accès du thread actuel.

Ce que le serveur peut faire pour le compte du client dépend du niveau d’emprunt d’identité défini par le client, qui est spécifié à l’aide de l’une des constantes de niveau d’emprunt d’identité. Le serveur peut emprunter l’identité du client lors d’un appel chiffré au niveau de l’identification, de l’emprunt d’identité ou du délégué. Pour plus d’informations sur ces niveaux d’emprunt d’identité, consultez Niveaux d’emprunt d’identité.

L’identité présentée à un serveur appelé lors de l’emprunt d’identité dépend du type de valeur de cloaking, le cas échéant, défini par le client. Pour plus d’informations, consultez Cloaking.

À la fin de chaque appel de méthode, COM appelle RevertToSelf si l’application ne le fait pas.

Traditionnellement, les informations d’emprunt d’identité ne sont pas imbriquées : le dernier appel à un mécanisme d’emprunt d’identité remplace toute emprunt d’identité précédente. Toutefois, dans le modèle d’appartement, l’emprunt d’identité est maintenu pendant les appels imbriqués. Par conséquent, si le serveur A reçoit un appel de B, emprunte l’identité, appelle C, reçoit un appel de D, emprunte l’identité, rétablit et reçoit la réponse de C, le jeton d’emprunt d’identité est rétabli sur B, et non sur A.

Pour plus d’informations sur l’utilisation de l’emprunt d’identité avec des appels asynchrones, consultez Emprunt d’identité et appels asynchrones.

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 objidl.h (inclure ObjIdl.h)

Voir aussi

CoImpersonateClient

IServerSecurity