Partager via


Méthode SecurityProperty::GetOriginalCallerName (comsvcs.h)

Récupère le nom d’utilisateur associé au processus de base qui a lancé la séquence d’appels d’où provient l’appel de l’objet actuel.

Syntaxe

HRESULT GetOriginalCallerName(
  [out] BSTR *bstrUserName
);

Paramètres

[out] bstrUserName

Référence au nom d’utilisateur associé au processus de base qui a lancé la séquence d’appels d’où provient l’appel dans l’objet actuel.

Valeur retournée

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

Remarques

En règle générale, l’appelant d’origine d’un objet est le même processus que son créateur d’origine. La seule situation dans laquelle l’appelant d’origine et le créateur d’origine seraient différents est l’une dans laquelle le créateur d’origine transmet une référence à un autre processus et l’autre processus initie la séquence d’appels.

Le scénario suivant illustre les fonctionnalités de cette méthode :

  1. 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, en tant qu’utilisateur B.
  2. Ensuite, 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.
  3. Le processus de base 2 utilise cette référence pour appeler l’objet X.
  4. L’objet X appelle ensuite l’objet Y, s’exécutant sur le serveur C. Si l’objet Y appelle alors GetOriginalCallerName, le nom de l’utilisateur D est retourné, et non l’utilisateur A, qui a créé l’objet à l’origine.
Le chemin de l’appelant d’origine est rompu si un objet le long de la chaîne a été créé par d’autres moyens que ObjectContext::CreateInstance ou ITransactionContext::CreateInstance. Par exemple, si le processus de base 1 utilise CoCreateInstance pour créer l’objet X, lorsque l’objet Y appelle GetOriginalCallerName, le nom qu’il obtient sera le nom de l’utilisateur B, et non de l’utilisateur D. Cela est dû au fait que la séquence d’appels est retracée par le biais du contexte des objets et que COM+ peut créer un contexte uniquement pour un objet créé avec ObjectContext::CreateInstance ou ITransactionContext::CreateInstance.

Configuration requise

   
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

SecurityProperty