ImpersonateLoggedOnUser失败的条件

时间:2011-02-13 03:23:37

标签: c++ security winapi

我有一个使用ImpersonateLoggedOnUser的Windows服务,以便使用当前用户权限删除系统权限并运行另一个应用程序。

如果对ImpersonateLoggedOnUser的调用失败,则服务执行的应用程序必须具有设计权限,这是不好的。我通过检查返回值来修复此问题。

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

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

如果是,怎么样?

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

谢谢!

1 个答案:

答案 0 :(得分:1)

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

我不确定API是否还有其他失败模式。