Partager via


IObjectContext::IsCallerInRole, méthode (comsvcs.h)

Indique si l’appelant direct de l’objet se trouve dans un rôle spécifié (directement ou dans le cadre d’un groupe).

Syntaxe

HRESULT IsCallerInRole(
  [in]  BSTR bstrRole,
  [out] BOOL *pfIsInRole
);

Paramètres

[in] bstrRole

Nom du rôle.

[out] pfIsInRole

TRUE si l’appelant est dans le rôle spécifié ; FALSE si ce n’est pas le cas. Ce paramètre est également défini sur TRUE si la sécurité n’est pas activée.

Valeur retournée

Cette méthode peut retourner les valeurs suivantes.

Code de retour Description
S_OK
Le rôle spécifié dans le paramètre bstrRole est un rôle reconnu, et le résultat booléen retourné dans le paramètre pbIsInRole indique si l’appelant est dans ce rôle.
CONTEXT_E_ROLENOTFOUND
Le rôle spécifié dans le paramètre bstrRole n’existe pas.
E_INVALIDARG
Un ou plusieurs des arguments passés ne sont pas valides.
E_UNEXPECTED
Une erreur inattendue s’est produite. Cela peut se produire si un objet passe son pointeur IObjectContext à un autre objet et si l’autre objet appelle IsCallerInRole à l’aide de ce pointeur. Un pointeur IObjectContext n’est pas valide en dehors du contexte de l’objet qui l’a obtenu à l’origine.

Remarques

Vous utilisez cette méthode pour déterminer si l’appelant direct de la méthode en cours d’exécution est associé à un rôle spécifique. Un rôle est un nom symbolique qui représente un utilisateur ou un groupe d’utilisateurs qui disposent d’autorisations d’accès spécifiques à tous les composants d’une application COM+ donnée. Les développeurs définissent des rôles lorsqu’ils créent un composant, et les rôles sont mappés à des utilisateurs ou des groupes individuels au moment du déploiement.

IsCallerInRole s’applique uniquement à l’appelant direct de la méthode en cours d’exécution. (L’appelant direct est le processus appelant dans le processus serveur actuel. Il peut s’agir d’un processus client de base ou d’un processus serveur.) IsCallerInRole ne s’applique pas au processus qui a lancé la séquence d’appels à partir de laquelle la méthode actuelle a été appelée, ni aux autres appelants de cette séquence.

Étant donné que IsCallerInRole retourne TRUE lorsque l’objet qui l’appelle s’exécute dans le processus d’un client, il est judicieux d’appeler IsSecurityEnabled avant d’appeler IsCallerInRole. Si la sécurité n’est pas activée, IsCallerInRole ne retourne pas de résultat précis.

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

IObjectContext