IServerSecurity::ImpersonateClient-Methode (objidl.h)

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

Syntax

HRESULT ImpersonateClient();

Rückgabewert

Wenn die Methode erfolgreich ist, wird der Rückgabewert S_OK. Andernfalls ist es 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, damit 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 Identifizierungs-, 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 von der Art 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 dies von der Anwendung nicht der Fall ist.

Normalerweise werden Identitätswechselinformationen nicht geschachtelt: Der letzte Aufruf eines Identitätswechselmechanismus überschreibt jeden vorherigen Identitätswechsel. Im Wohnungsmodell wird der Identitätswechsel jedoch während geschachtelter Aufrufe beibehalten. Wenn server A also einen Aufruf von B empfängt, die Identität annimmt, C aufruft, einen Anruf von D empfängt, identitätswechselt, rückgängig machen und die Antwort von C empfängt, wird das Identitätswechseltoken auf B und nicht auf A zurückgesetzt.

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

Weitere Informationen

CoImpersonateClient

IServerSecurity