Freigeben über


SeImpersonateClientEx-Funktion (ntifs.h)

Die SeImpersonateClientEx-Routine bewirkt, dass ein Thread die Identität eines Benutzers antäussiert.

Syntax

NTSTATUS SeImpersonateClientEx(
  [in]           PSECURITY_CLIENT_CONTEXT ClientContext,
  [in, optional] PETHREAD                 ServerThread
);

Parameter

[in] ClientContext

Zeiger auf den Sicherheitsclientkontext des Benutzers.

[in, optional] ServerThread

Zeiger auf den Thread, der die Identität des Benutzers annehmen soll. Wenn nicht angegeben, wird der aufrufende Thread verwendet.

Rückgabewert

SeImpersonateClientEx gibt einen entsprechenden NTSTATUS-Wert zurück, z. B. den folgenden:

Rückgabecode Beschreibung
STATUS_SUCCESS
Der Identitätswechselversuch war erfolgreich.
STATUS_ACCESS_DENIED
Der im ServerThread-Parameter angegebene Thread verfügte nicht über ausreichende Zugriffsrechte, um die Identität des Benutzers zu annehmen, dessen Sicherheitsclientkontext im ClientContext-Parameter angegeben ist.
STATUS_NO_MEMORY
SeImpersonateClientEx ist bei der Zuweisung von Arbeitsspeicher für die Identitätswechselinformationsstruktur ein Poolzuordnungsfehler aufgetreten.

Hinweise

SeImpersonateClientEx wird verwendet, um zu bewirken, dass ein Thread die Identität eines Benutzers anwendet. Es wird davon ausgegangen, dass der Clientsicherheitskontext in ClientContext auf dem neuesten Stand ist.

Es ist äußerst unsicher, den Berechtigungsstatus eines nicht vertrauenswürdigen Benutzerthreads auszulösen (z. B. den Thread eines Benutzers und die Identität von LocalSystem annehmen). Wenn für einen nicht vertrauenswürdigen Benutzerthread seine Berechtigungen ausgelöst wurden, kann der Benutzer das Threadtoken abrufen, nachdem es erhöht wurde, und die Sicherheit des gesamten Systems beeinträchtigen.

In Fällen, in denen ein höherer Berechtigungsstatus erforderlich ist, sollte die Aufgabe an eine Arbeitswarteschlange weitergeleitet werden, in der die Aufgabe vom System workerthread sicher verarbeitet werden kann. Auf diese Weise ist kein Identitätswechsel erforderlich.

Um den Identitätswechsel des Benutzers zu beenden, rufen Sie die SeStopImpersonatingClient-Routine auf.

Die PsImpersonateClient-Routine kann verwendet werden, um zu bewirken, dass ein Serverthread die Identität eines Clients anwendet.

Weitere Informationen zur Sicherheit und Zugriffssteuerung finden Sie unter Windows-Sicherheitsmodell für Treiberentwickler und in der Dokumentation zu diesen Themen im Windows SDK.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000
Zielplattform Universell
Header ntifs.h (include Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

Weitere Informationen

PsImpersonateClient

SeCreateClientSecurity

SeCreateClientSecurityFromSubjectContext

SeStopImpersonatingClient