安装和更新 ActiveX 控件需要哪些权限?

Posted

技术标签:

【中文标题】安装和更新 ActiveX 控件需要哪些权限?【英文标题】:What permissions are needed to install and update an ActiveX control? 【发布时间】:2009-10-13 23:45:55 【问题描述】:

我们正在开发一个基于网络的销售点应用程序,虽然它主要在浏览器中运行,但也需要与信用卡读卡器等硬件设备集成。为了提供硬件集成,我们使用 ATL 在 C++ 中实现了几个简单的 ActiveX 控件。

我们不是经验丰富的 Windows 开发人员,很难理解 ActiveX 控件的安装过程和安全模型。显然,这是我们的用户真正能够运行我们的应用程序的先决条件。 :)

我们正在尝试确定典型的非特权用户(非管理员、非超级用户)所需的细粒度最严格的权限集是什么从作为 Web 应用程序的一部分通过 HTTP 提供的已签名 .cab 文件安装和更新 特定 ActiveX 控件(与 任何 ActiveX 控件相对)。对于 XP (SP2+) 和 IE6,以及更新的操作系统/浏览器组合,我们需要知道这一点。我们需要这些信息,以便帮助我们的 IT 人员正确配置运行该软件的机器。

我们在互联网上进行了大量挖掘工作,但未能找到足够的文档。我们还与 Microsoft 的一些人进行了交谈,他们也无法为我们提供所需的信息。

使用 Sysinternals 进程监视器和一些试验和错误,我们已经能够确定以下注册表权限足以使非特权用户被提示在 XP SP2 / IE6 上安装 ActiveX 控件(即用户将看到 IE 顶部的黄色条显示“此站点要安装一些软件”):

HKLM\Software\Microsoft\Tracing(仅限密钥,创建子密钥权限) HKLM\Software\Microsoft\Code Store Database(仅限密钥,创建子密钥权限)

实际安装控件的过程要复杂得多,我们在整理它方面并没有取得太大进展,除了一般认为用户需要写信给C:\windows\downloaded program files\HKLM\Software\Microsoft\Code Store Database\Distribution Units\guid

(我们正在研究 Vista 和 Windows 7 以非特权用户身份安装 ActiveX 控件的能力,但我们也需要支持 XP。我们也在考虑采用 AIR 2 作为我们的平台,它提供本机代码集成,但是这也不能满足我们的迫切需求。)

【问题讨论】:

【参考方案1】:

自从我不得不为商业产品开发嵌入在网页中的 ActiveX 控件以来,已经有很多很多年了。

感谢您和您的团队所做的 事情是正确的方式。我也见过 许多商业的,基于网络的, 应用迫使企业 降低安全要求 Internet Explorer 因为他们 不能花时间正确 打包他们的应用程序。

我记得的基本前提是您必须实现至少一个特定接口IObjectSafety,在组件注册期间添加几个特定组件类别 ID,并 使用来自受信任的 CA,例如 Verisign。

退房:

Safe Initialization and Scripting for ActiveX Controls Packaging ActiveX Controls Non Admin ActiveX Controls

如果这不起作用,请尝试获取您的 local Microsoft Developer Evangelist 以帮助您指明正确的方向。

如果您有 Microsoft 支持合同,请联系您的技术客户经理 (TAM) 或应用程序开发顾问 (ADC) 以获得更多帮助。

祝你好运,

Z

【讨论】:

以上是关于安装和更新 ActiveX 控件需要哪些权限?的主要内容,如果未能解决你的问题,请参考以下文章

visual stdio 开发ActiveX控件基本教程

Silverlight 中的webBrowser控件打开的网页怎么才能加载ActiveX控件

ActiveX控件的注册和反注册

Activex控件是啥?它的作用是啥?

如何在 MFC 对话框中替换/更新 ActiveX 控件

delphi 中 如何注册ocx文件