IObjectContext::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] BOOL *pfIsInRole
);

Parameter

[in] bstrRole

Der Name der Rolle.

[out] pfIsInRole

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

Rückgabewert

Diese Methode kann 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_INVALIDARG
Mindestens eins der übergebenen Argumente ist ungültig.
E_UNEXPECTED
Ein unerwarteter Fehler ist aufgetreten. Dies kann passieren, wenn ein Objekt seinen IObjectContext-Zeiger an ein anderes Objekt übergibt und das andere Objekt IsCallerInRole mit diesem Zeiger aufruft. Ein IObjectContext-Zeiger ist außerhalb des Kontexts des Objekts, das ihn ursprünglich abgerufen hat, ungültig.

Hinweise

Sie verwenden 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 spezifische Zugriffsberechtigungen für alle Komponenten in einer bestimmten COM+-Anwendung verfügen. Entwickler definieren Rollen, wenn sie eine Komponente erstellen, und Rollen werden zur Bereitstellungszeit 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. Es kann entweder ein Basisclientprozess oder ein Serverprozess sein.) IsCallerInRole gilt nicht für den Prozess, der die Aufrufsequenz initiiert hat, von der aus 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

   
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

IObjectContext