IServerSecurity::ImpersonateClient-Methode (objidlbase.h)

Ermöglicht es einem Server, die Identität eines Clients für die Dauer eines Aufrufs zu annehmen.

Syntax

HRESULT ImpersonateClient();

Rückgabewert

Wenn die Methode erfolgreich ist, wird der Rückgabewert S_OK. Andernfalls wird sie E_FAIL.

Hinweise

Normalerweise wird eine Methode in einem Thread ausgeführt, der das Zugriffstoken des Prozesses verwendet. Beim Annehmen der Identität eines Clients wird der Server jedoch im Sicherheitskontext des Clients ausgeführt, sodass der Server Zugriff auf die Ressourcen hat, auf die der Client Zugriff hat. Wenn ein Identitätswechsel erforderlich ist, ruft der Server die ImpersonateClient-Methode auf, um zu bewirken, dass dem aktuellen Thread ein Zugriffstoken zugewiesen wird, das die Anmeldeinformationen des Clients darstellt. Dieses Threadtoken wird für Zugriffsprüfungen verwendet. RevertToSelf stellt das Zugriffstoken des aktuellen Threads wieder her.

Was der Server im Namen des Clients tun kann, hängt von der vom Client festgelegten Identitätswechselebene ab, die mithilfe einer der Konstanten der Identitätswechselebene angegeben wird. Der Server kann die Identität des Clients bei einem verschlüsselten Aufruf auf Identifizieren, Identitätswechsel oder Delegatebene annehmen. Informationen zu diesen Ebenen des Identitätswechsels finden Sie unter Identitätswechselebenen.

Die Identität, die einem Server mit dem Namen während des Identitätswechsels angezeigt wird, hängt vom Typ des Cloaking-Werts ab, falls vorhanden, der vom Client festgelegt wird. Weitere Informationen finden Sie unter Cloaking.

Am Ende jedes Methodenaufrufs ruft COM RevertToSelf auf, wenn die Anwendung dies nicht tut.

Normalerweise werden Identitätswechselinformationen nicht geschachtelt: Der letzte Aufruf eines Identitätswechselmechanismus überschreibt jeden vorherigen Identitätswechsel. Im Apartmentmodell wird der Identitätswechsel jedoch während geschachtelter Anrufe beibehalten. Wenn der Server A also einen Anruf von B empfängt, die Identität wechselt, C aufruft, einen Anruf von D empfängt, sich imitiert, revertiert und die Antwort von C empfängt, wird das Identitätswechseltoken wieder auf B und nicht auf A festgelegt.

Informationen zur Verwendung des Identitätswechsels mit asynchronen Aufrufen finden Sie unter Identitätswechsel und asynchrone Aufrufe.

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 objidlbase.h (include ObjIdl.h)

Weitere Informationen

CoImpersonateClient

IServerSecurity