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 |
---|---|
|
Der Identitätswechselversuch war erfolgreich. |
|
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. |
|
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 |