Partager via


Méthode ISecurityProperty ::GetDirectCallerSID (comsvcs.h)

Récupère l’identificateur de sécurité du processus externe qui a appelé la méthode en cours d’exécution. Vous pouvez également obtenir ces informations à l’aide de ISecurityCallContext.

Syntaxe

HRESULT GetDirectCallerSID(
  [out] PSID *pSID
);

Paramètres

[out] pSID

Référence à l’ID de sécurité du processus à partir duquel la méthode actuelle a été appelée.

Valeur retournée

Cette méthode peut retourner les valeurs de retour standard E_INVALIDARG, E_OUTOFMEMORY, E_UNEXPECTED et E_FAIL, ainsi que les valeurs suivantes.

Code de retour Description
S_OK
L’ID de sécurité du processus qui a appelé la méthode actuelle est retourné dans le paramètre pSid.
CONTEXT_E_NOCONTEXT
L’objet actuel n’a pas de contexte associé, car le composant n’a pas été importé dans une application ou l’objet n’a pas été créé avec l’une des méthodes COM+ CreateInstance.

Remarques

Utilisez la méthode GetDirectCallerSID pour déterminer l’ID de sécurité du processus qui a appelé la méthode en cours d’exécution de l’objet. La sécurité est appliquée au-delà des limites de processus. Cela signifie que l’ID de sécurité retourné par GetDirectCallerSID est l’ID de sécurité associé au processus qui a appelé dans le processus dans lequel l’objet actuel est en cours d’exécution, pas nécessairement l’appelant immédiat dans l’objet lui-même. Si un objet appelle un autre objet dans le même processus, lorsque le deuxième objet appelle GetDirectCallerSID , il obtient l’ID de sécurité de l’appelant le plus immédiat en dehors de sa propre limite de processus, et non l’ID de sécurité de l’objet qui l’a appelé directement.

Les scénarios suivants illustrent les fonctionnalités de la méthode GetDirectCallerSID :

  • Un processus de base s’exécutant sur le serveur A, en tant qu’utilisateur A, appelle l’objet X sur le serveur B, s’exécutant en tant qu’utilisateur B. Ensuite, l’objet X appelle l’objet Y, en cours d’exécution sur le serveur C. Si l’objet Y appelle GetDirectCallerSID, l’ID de sécurité de l’utilisateur B est retourné.
  • Un processus de base, exécuté sur le serveur A en tant qu’utilisateur A, appelle l’objet X sur le serveur B, s’exécutant en tant qu’utilisateur B. Ensuite, l’objet X appelle l’objet Y, s’exécutant dans le même processus que l’objet X, également sur le serveur B. Lorsque l’objet Y appelle GetDirectCallerSID, l’ID de sécurité de l’utilisateur A est retourné, et non l’ID de sécurité de l’utilisateur B.
Vous devez appeler ISecurityProperty ::ReleaseSID sur un ID de sécurité lorsque vous avez terminé de l’utiliser.

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 comsvcs.h

Voir aussi

ISecurityProperty