在Vista上调用CoCreateInstance时是否可以降低权限级别?

时间:2009-08-20 08:44:46

标签: c++ com windows-vista uac

好的,我有一个IE插件,安装时需要(在用户允许的情况下)重启IE。

为此,我有一个安装程序调用的DLL。并且它可以工作,但问题是当在Vista上重新启动IE时,它会以安装程序的管理员权限重新启动,这是一个问题,原因有很多。

我正在使用CoCreateInstance启动IE,因此我获得了IWebBrowser2接口的实例,以便对其执行某些操作。

所以我的问题是,是否可以从以管理员权限运行的应用程序调用CoCreateInstance,这样生成的COM对象实例将继承基本用户权限而不是调用应用程序的管理员权限? / p>

1 个答案:

答案 0 :(得分:1)

好的,我从这里找到了解决方案:

http://social.msdn.microsoft.com/Forums/cs-CZ/ieextensiondevelopment/thread/78a2bc18-1920-4e58-af7e-48dbcebe7643

从我的安装程序DLL中,我需要启动一个新线程,并模拟该线程上的当前用户,然后设置一个低完整性级别,并使用CLSCTX_ENABLE_CLOAKING上下文创建COM实例。