Méthode ISecurityProperty ::GetOriginalCallerSID (comsvcs.h)
Récupère l’identificateur de sécurité du processus de base qui a lancé la séquence d’appels à partir de laquelle la méthode actuelle a été appelée.
La meilleure façon d’obtenir des informations sur l’appelant d’origine consiste à utiliser l’interface ISecurityCallContext .
Syntaxe
HRESULT GetOriginalCallerSID(
[out] PSID *pSID
);
Paramètres
[out] pSID
Référence à l’ID de sécurité du processus de base qui a lancé la séquence d’appels à partir de laquelle 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 |
---|---|
|
L’ID de sécurité du processus de base à l’origine de l’appel à l’objet actuel est retourné dans le paramètre pSid. |
|
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
Vous utilisez la méthode GetOriginalCallerSID pour déterminer l’ID de sécurité du processus d’origine qui a lancé la séquence d’appels à partir de laquelle la méthode actuelle a été appelée, et non l’auteur (ou le créateur) du processus. Bien qu’un pointeur vers un objet puisse être transmis via une série de serveurs et d’utilisateurs, GetOriginalCallerSID retourne toujours le premier serveur et le premier utilisateur du processus, même si cet utilisateur n’était pas le créateur d’origine de l’objet. Le scénario suivant illustre les fonctionnalités de la méthode GetOriginalCallerSID .
- Le processus de base 1, exécuté sur le serveur A en tant qu’utilisateur A, crée l’objet X, sur le serveur B, s’exécutant en tant qu’utilisateur B.
- Le processus de base 1 transmet sa référence sur l’objet X au processus de base 2, s’exécutant sur le serveur D en tant qu’utilisateur D.
- Le processus de base 2 utilise cette référence pour appeler l’objet X.
- L’objet X appelle l’objet Y, s’exécutant sur le serveur C. Si l’objet Y appelle alors GetOriginalCallerSID, l’ID de sécurité de l’utilisateur D est retourné, et non l’utilisateur A, qui a créé l’objet à l’origine.
Vous devez appeler 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 |