c++ - ImpersonateLoggedOnUser 失败的条件

标签 c++ security winapi

我有一个使用 ImpersonateLoggedOnUser 的 Windows 服务为了放弃系统权限并使用当前用户权限运行另一个应用程序。

如果对 ImpersonateLoggedOnUser 的调用失败,则服务执行的应用程序将必须按设计具有系统权限,这并不好。我通过检查返回值解决了这个问题。

现在我尝试确定是否有可能使该函数调用失败。

在没有修改应用程序和没有管理员权限的情况下,是否有可能发生这种情况? (当然,没有修复)

如果是,怎么办?

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

谢谢!

最佳答案

如果您没有模拟权限或相关句柄无效,ImpersonateLoggedOnUser 将失败。

我不确定 API 是否还有其他故障模式。

关于c++ - ImpersonateLoggedOnUser 失败的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4982237/

相关文章:

security - 登录失败时具体通知用户登录凭据的哪一部分是错误的不安全?

javascript - bcrypt.compare 是否容易受到定时攻击

security - Google 身份验证器作为公共(public)服务提供吗?

c++ - 原始输入替代键盘 Hook ?

WinAPI:如何获得大写锁定状态?

c++ - “Add to project list”在Qt项目管理对话框中是灰色的

c++ - 如何在 C++ Windows 中包含第三方库?

c++ - 管理 OpenGL 状态机的策略

c++ - 获取非管理员用户的设备句柄

c++ - 在 C++ 中获取拉丁字符