Freigeben über


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
STATUS_SUCCESS
Der Identitätswechselversuch war erfolgreich.
STATUS_ACCESS_DENIED
Der in ServerThread Parameter angegebene Thread verfügte nicht über ausreichende Zugriffsrechte, um den Benutzer zu imitieren, dessen Sicherheitsclientkontext im ClientContext Parameter angegeben ist.
STATUS_NO_MEMORY
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

Siehe auch

PsImpersonateClient-

SeCreateClientSecurity

SeCreateClientSecurityFromSubjectContext

SeStopImpersonatingClient