Поделиться через


Функция SeImpersonateClientEx (ntifs.h)

Подпрограмма seImpersonateClient Ex приводит к тому, что поток олицетворения пользователя.

Синтаксис

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

Параметры

[in] ClientContext

Указатель на контекст клиента безопасности пользователя.

[in, optional] ServerThread

Указатель на поток, который является олицетворения пользователя. Если это не указано, используется вызывающий поток.

Возвращаемое значение

SeImpersonateClientEx возвращает соответствующее значение NTSTATUS, например следующее:

Возвращаемый код Описание
STATUS_SUCCESS
Попытка олицетворения завершилась успешно.
STATUS_ACCESS_DENIED
Поток, указанный в параметре ServerThread, не имеет достаточных прав доступа для олицетворения пользователя, контекст клиента безопасности которого указан в параметре ClientContext.
STATUS_NO_MEMORY
SeImpersonateClientEx возникла ошибка выделения пула при выделении памяти для структуры сведений олицетворения.

Замечания

SeImpersonateClientEx используется для олицетворения пользователя потоком. Предполагается, что контекст безопасности клиента в ClientContext обновлен.

Крайне небезопасно повысить состояние привилегий ненадежного потока пользователя (например, взять поток пользователя и олицетворить LocalSystem). Если у ненадежного потока пользователя возникла привилегия, пользователь может захватить маркер потока после повышения уровня и понизить безопасность всей системы.

В случаях, когда требуется более высокое состояние привилегий, задача должна быть отправлена в рабочую очередь, где задача может безопасно обрабатываться рабочим потоком системы. Таким образом, не требуется олицетворение.

Чтобы завершить олицетворение пользователя, вызовите процедуру SeStopImpersonatingClient.

Подпрограмма psImpersonateClient может использоваться для олицетворения клиента потоком сервера.

Дополнительные сведения о безопасности и управлении доступом см. в модели безопасности Windows для разработчиков драйверов и документации по этим разделам в пакете SDK для Windows.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000
целевая платформа Всеобщий
заголовка ntifs.h (include Ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

См. также

PsImpersonateClient

SeCreateClientSecurity

SeCreateClientSecurityFromSubjectContext

SeStopImpersonatingClient