RpcImpersonateClient-Funktion (rpcdce.h)

Ein Serverthread, der Client-Remoteprozeduraufrufe verarbeitet, kann die RpcImpersonateClient-Funktion aufrufen, um den aktiven Client zu imitieren.

Syntax

RPC_STATUS RpcImpersonateClient(
  RPC_BINDING_HANDLE BindingHandle
);

Parameter

BindingHandle

Bindungshandpunkt auf dem Server, der eine Bindung an einen Client darstellt. Der Server beschreibt den durch diesen Handle angegebenen Client. Wenn ein Wert von Null angegeben wird, wird der Server den Client, der von diesem Serverthread bereitgestellt wird, imitiert.

Rückgabewert

Wert Bedeutung
RPC_S_OK
Der Aufruf war erfolgreich.
RPC_S_NO_CALL_ACTIVE
Auf diesem Serverthread ist kein Client aktiv.
RPC_S_CANNOT_SUPPORT
Die Funktion wird für das Betriebssystem, den Transport oder dieses Sicherheitssystem nicht unterstützt.
RPC_S_INVALID_BINDING
Der Bindungspunkt war ungültig.
RPC_S_WRONG_KIND_OF_BINDING
Dies war die falsche Art der Bindung für den Vorgang.
RPC_S_NO_CONTEXT_AVAILABLE
Der Server verfügt nicht über die Berechtigung zum Identitätswechsel des Clients.
 
Hinweis Eine Liste der gültigen Fehlercodes finden Sie unter RPC-Rückgabewerte.
 

Hinweise

Wenn der Aufruf von RpcImpersonateClient in einer Multithread-Anwendung mit einem Handle zu einem anderen Clientthread besteht, müssen Sie RpcRevertToSelfEx mit dem Handle für diesen Thread aufrufen, um die Identität zu beenden.

Alle Funktionen, die den Identitätswechsel überprüfen, um zu ermitteln, ob der Aufrufer dieser Funktion (der RPC-Server) über das SeImpersonatePrivilege-Recht verfügt. Wenn der Anrufer über das SeImpersonatePrivilege verfügt oder die authentifizierte Identität identisch ist wie die Identität des Anrufers dieser Funktion, ist die angeforderte Identität zulässig. Andernfalls ist die Identitätswechsel nur auf Der Ebene "Identifizieren" erfolgreich.

Windows XP/2000/NT: Das SeImpersonatePrivilege-Recht wird erst unterstützt, wenn Windows XP mit Service Pack 2 (SP2) unterstützt wird.

Sicherheitsshinweise

Wenn der Aufruf von RpcImpersonateClient aus irgendeinem Grund fehlschlägt, wird die Clientverbindung nicht identitätsverändert, und die Clientanforderung wird im Sicherheitskontext des Prozesses vorgenommen. Wenn der Prozess als hoch privilegiertes Konto ausgeführt wird, z. B. LocalSystem oder Mitglied einer administrativen Gruppe, kann der Benutzer Aktionen ausführen, die sonst nicht zulässig wären. Daher ist es wichtig, immer den Rückgabewert des Aufrufs zu überprüfen, und wenn es fehlschlägt, wird ein Fehler ausgelöst; Führen Sie die Ausführung der Clientanforderung nicht fort.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile rpcdce.h
Bibliothek Rpcrt4.lib
DLL Rpcrt4.dll

Weitere Informationen

Clientidentitätswechsel

RpcRevertToSelf