Функция SeImpersonateClientEx (ntifs.h)
Подпрограмма seImpersonateClient Ex приводит к тому, что поток олицетворения пользователя.
Синтаксис
NTSTATUS SeImpersonateClientEx(
[in] PSECURITY_CLIENT_CONTEXT ClientContext,
[in, optional] PETHREAD ServerThread
);
Параметры
[in] ClientContext
Указатель на контекст клиента безопасности пользователя.
[in, optional] ServerThread
Указатель на поток, который является олицетворения пользователя. Если это не указано, используется вызывающий поток.
Возвращаемое значение
SeImpersonateClientEx возвращает соответствующее значение NTSTATUS, например следующее:
Возвращаемый код | Описание |
---|---|
|
Попытка олицетворения завершилась успешно. |
|
Поток, указанный в параметре ServerThread, не имеет достаточных прав доступа для олицетворения пользователя, контекст клиента безопасности которого указан в параметре ClientContext. |
|
SeImpersonateClientEx возникла ошибка выделения пула при выделении памяти для структуры сведений олицетворения. |
Замечания
SeImpersonateClientEx используется для олицетворения пользователя потоком. Предполагается, что контекст безопасности клиента в ClientContext обновлен.
Крайне небезопасно повысить состояние привилегий ненадежного потока пользователя (например, взять поток пользователя и олицетворить LocalSystem). Если у ненадежного потока пользователя возникла привилегия, пользователь может захватить маркер потока после повышения уровня и понизить безопасность всей системы.
В случаях, когда требуется более высокое состояние привилегий, задача должна быть отправлена в рабочую очередь, где задача может безопасно обрабатываться рабочим потоком системы. Таким образом, не требуется олицетворение.
Чтобы завершить олицетворение пользователя, вызовите процедуру SeStopImpersonatingClient.
Подпрограмма psImpersonateClient может использоваться для олицетворения клиента потоком сервера.
Дополнительные сведения о безопасности и управлении доступом см. в модели безопасности Windows для разработчиков драйверов и документации по этим разделам в пакете SDK для Windows.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 2000 |
целевая платформа | Всеобщий |
заголовка | ntifs.h (include Ntifs.h) |
библиотеки | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |