SeImpersonateClientEx-Funktion (ntifs.h)
Die SeImpersonateClientEx Routine bewirkt, dass ein Thread den Identitätswechsel eines Benutzers verursacht.
Syntax
NTSTATUS SeImpersonateClientEx(
[in] PSECURITY_CLIENT_CONTEXT ClientContext,
[in, optional] PETHREAD ServerThread
);
Parameter
[in] ClientContext
Zeigen Sie auf den Sicherheitsclientkontext des Benutzers.
[in, optional] ServerThread
Zeigen Sie auf den Thread, der die Identität des Benutzers angibt. Wenn nicht angegeben, wird der aufrufende Thread verwendet.
Rückgabewert
SeImpersonateClientEx gibt einen geeigneten NTSTATUS-Wert zurück, z. B. folgendes:
Rückgabecode | Beschreibung |
---|---|
|
Der Identitätswechselversuch war erfolgreich. |
|
Der in ServerThread Parameter angegebene Thread verfügte nicht über ausreichende Zugriffsrechte, um den Benutzer zu imitieren, dessen Sicherheitsclientkontext im ClientContext Parameter angegeben ist. |
|
SeImpersonateClientEx beim Zuordnen des Speichers für die Identitätsinformationsstruktur einen Poolzuordnungsfehler aufgetreten. |
Bemerkungen
SeImpersonateClientEx- wird verwendet, um einen Thread zum Identitätswechsel eines Benutzers zu veranlassen. Der Clientsicherheitskontext in ClientContext- wird als auf dem neuesten Stand angenommen.
Es ist äußerst unsicher, den Berechtigungsstatus eines nicht vertrauenswürdigen Benutzerthreads auszuheben (nehmen Sie z. B. den Thread eines Benutzers und den Identitätswechsel von LocalSystem). Wenn ein nicht vertrauenswürdiger Benutzerthread seine Berechtigung ausgelöst hat, konnte der Benutzer das Threadtoken abrufen, nachdem er erhöht wurde, und die Sicherheit des gesamten Systems subvertieren.
In Fällen, in denen ein höherer Berechtigungsstatus erforderlich ist, sollte die Aufgabe an eine Arbeitswarteschlange verteilt werden, in der die Aufgabe vom Systemarbeitsthread sicher behandelt werden kann. Auf diese Weise ist kein Identitätswechsel erforderlich.
Rufen Sie zum Beenden des Identitätswechsels des Benutzers die SeStopImpersonatingClient Routine auf.
Die PsImpersonateClient Routine kann verwendet werden, um einen Serverthread zum Identitätswechsel eines Clients zu veranlassen.
Weitere Informationen zur Sicherheits- und Zugriffssteuerung finden Sie unter Windows-Sicherheitsmodell für Treiberentwickler und die Dokumentation zu diesen Themen im Windows SDK.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 2000 |
Zielplattform- | Universal |
Header- | ntifs.h (einschließlich Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | PASSIVE_LEVEL |