Условия, при которых ImpersonateLoggedOnUser не выполняется - PullRequest
0 голосов
/ 13 февраля 2011

У меня есть служба Windows, которая использует ImpersonateLoggedOnUser, чтобы отбросить системные разрешения и запустить другое приложение, используя права текущих пользователей.

Если вызов ImpersonateLoggedOnUser не удалсяПриложение, выполняемое службой, должно иметь системные права, что не очень хорошо.Я исправил это, проверив возвращаемое значение.

Теперь я пытаюсь определить, возможно ли сделать этот вызов функции неудачным.

Есть ли такой случай, когда это может произойти, без изменения приложенияа без прав администратора?(и без исправления, конечно)

Если да, то как?

HANDLE hToken;
OpenProcessToken( hProcess, MAXIMUM_ALLOWED, &hToken );
ImpersonateLoggedOnUser( hToken );
[...]

Спасибо!

1 Ответ

1 голос
/ 13 февраля 2011

ImpersonateLoggedOnUser завершится ошибкой, если у вас нет привилегии олицетворения или если указанный дескриптор недействителен.

Я не уверен, есть ли другие режимы отказа для API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...