2008-12-03 119 views
2

我正在研究一个需要ActiveX控件运行的web应用程序。当用户具有管理员权限时安装得很好,但无法加载。这是由设计,如果是这样,这是记录在某处? (最好是MSDN)您可以在没有管理员权限的情况下在IE中安装ActiveX控件吗?

+0

只是出于兴趣,你需要什么控制?我不认为我会在开始开发之前构建一个需要ActiveX的应用程序,而不会意识到复杂性。 – scunliffe 2008-12-04 00:15:33

+1

这是我们自己对内部应用程序的控制。 – Ferruccio 2008-12-04 02:46:38

回答

3

其实,所有这些答案是完全正确的;如果您以每个用户的身份安装ActiveX控件,则无论用户所在的组是否具有管理权限,都可以正常工作。基本上,这涉及将其安装到HKEY_CURRENT_USER而不是HKEY_LOCAL_MACHINE。

取决于你写的activex控件的内容可能很简单,或者可能很难改变;与ATL 9这是很容易,因为你只需要调用一个函数:

AtlSetPerUserRegistration(perUser); 

FireBreath默认情况下,这样的管理权限不neccesary安装插件/控制做到这一点;它也有一个workaround for older versions of ATL(ATL 9是VS 2008)。这都是C++,所以如果你的控件是用别的东西写的,我不知道如何解决它,但至少应该让你开始。

1

复杂的答案:是的。用户的帐户需要成为注册库(dll)或控件(ocx)或需要直接分配该特权的组的一部分。

答案很简单:号只有具有行政privelege占安装OCX控件或DLL可以安装Active-X控件(由默认这些帐户是管理员,域管理员或Power Users组的一部分)。

编辑:我想这个问题改变了......是的,这是设计。

+1

这不完全正确;没有管理员权限的帐户可以安装控件,如果它们被设计为可安装在HKEY_CURRENT_USER中而不是HKEY_LOCAL_MACHINE(默认值)。 HKEY_CLASSES_ROOT是两个组合与HKCU覆盖HKLM密钥的组合。查看我的答案获取更多信息 – taxilian 2011-09-19 15:36:22

相关问题