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 |
---|---|
|
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. |
|
Die im bstrRole-Parameter angegebene Rolle ist nicht vorhanden. |
|
Mindestens eins der übergebenen Argumente ist ungültig. |
|
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 |