Share via


ObjectContext::IsCallerInRole-Methode (comsvcs.h)

Gibt an, ob sich der direkte Aufrufer des Objekts in einer angegebenen Rolle befindet (entweder direkt oder als Teil einer Gruppe).

Syntax

HRESULT IsCallerInRole(
  [in]  BSTR         bstrRole,
  [out] VARIANT_BOOL *pbInRole
);

Parameter

[in] bstrRole

Der Name der Rolle.

[out] pbInRole

TRUE , wenn sich der Aufrufer in der angegebenen Rolle befindet; Andernfalls FALSE . Dieser Parameter ist auch auf TRUE festgelegt, wenn die Sicherheit nicht aktiviert ist.

Rückgabewert

Diese Methode kann die Standardrückgabewerte E_INVALIDARG, E_OUTOFMEMORY und E_FAIL sowie die folgenden Werte zurückgeben.

Rückgabecode BESCHREIBUNG
S_OK
Die im bstrRole-Parameter angegebene Rolle ist eine erkannte Rolle, und das boolesche Ergebnis, das im pbIsInRole-Parameter zurückgegeben wird, gibt an, ob sich der Aufrufer in dieser Rolle befindet.
CONTEXT_E_ROLENOTFOUND
Die im bstrRole-Parameter angegebene Rolle ist nicht vorhanden.
E_UNEXPECTED
Ein unerwarteter Fehler ist aufgetreten. Dies kann passieren, wenn ein Objekt seinen ObjectContext-Zeiger an ein anderes Objekt übergibt und das andere Objekt IsCallerInRole mit diesem Zeiger aufruft. Ein ObjectContext-Zeiger ist außerhalb des Kontexts des Objekts, das ihn ursprünglich abgerufen hat, ungültig.

Hinweise

Verwenden Sie diese Methode, um zu bestimmen, ob der direkte Aufrufer der derzeit ausgeführten Methode einer bestimmten Rolle zugeordnet ist. Eine Rolle ist ein symbolischer Name, der einen Benutzer oder eine Gruppe von Benutzern darstellt, die über bestimmte Zugriffsberechtigungen für alle Komponenten in einer bestimmten COM+-Anwendung verfügen. Entwickler definieren Rollen, wenn sie eine Komponente erstellen, und Rollen werden zum Zeitpunkt der Bereitstellung einzelnen Benutzern oder Gruppen zugeordnet.

IsCallerInRole gilt nur für den direkten Aufrufer der derzeit ausgeführten Methode. (Der direkte Aufrufer ist der Prozess, der den aktuellen Serverprozess aufruft. Dies kann entweder ein Basisclientprozess oder ein Serverprozess sein.) IsCallerInRole gilt nicht für den Prozess, der die Aufrufsequenz initiiert hat, aus der die aktuelle Methode aufgerufen wurde, oder auf andere Aufrufer in dieser Sequenz.

Da IsCallerInRoleTRUE zurückgibt, wenn das Objekt, das es aufruft, im Prozess eines Clients ausgeführt wird, empfiehlt es sich, IsSecurityEnabled aufzurufen, bevor IsCallerInRole aufgerufen wird. Wenn die Sicherheit nicht aktiviert ist, gibt IsCallerInRole kein genaues Ergebnis zurück.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile comsvcs.h

Weitere Informationen

Objectcontext