【发布时间】:2010-12-04 12:56:33
【问题描述】:
我构建了一个 .NET 类库项目,该项目在调用时访问 mshtml.HTMLDocument(来自 JavaScript)。在我的机器上一切正常,因为我将 .NET Configuration for Trusted Sites 中的权限更改为具有完全访问权限。
但对于最终用户,我希望 Internet Explorer 像 Windows 更新那样提示他们。
我使用强名称和自动签名证书对程序集进行了签名,并且我断言非托管代码 SecurityPermission,但仍然没有询问用户的“黄条”。
有人知道如何触发这个提示吗?谢谢
稍后编辑:更多细节:
我将组件嵌入为<object classid="dllname.dll#namespace.classname" ><object>,它可以工作,但没有安全权限。
如果我像<object classid="clsid:..guid.." codebase="dllname.dll#-1,-1,-1,-1"></object> 那样嵌入它,安装弹出窗口的权限就会出现,但对象无法实例化。
更新:我将我的类设为 COM 类,实现了安全脚本,我用它制作了一个 MSI 并将其放入 .CAB 文件中。如果用户在 Trusted Roots 中有我的证书,它就会安装,并且它可以工作。
但是,如果它不受信任,它就不起作用(对用户没有问题,只是'..阻止了以下 activex 来自..'。这 真的意味着我必须把我的钱变成了 SSL 证书?!?
【问题讨论】:
-
为什么不使用 Silverlight 而不是 ActiveX?出于安全考虑,许多人避免使用 ActiveX。
-
嗯,它实际上是通过 WIALib 使用扫描仪,然后发布扫描的图像。我无法使用 Silverlight 或 Flash 进行扫描。
-
给他们一个 ClickOnce 应用程序不是更简单吗?在托管代码中要跳过的安全圈要少得多。看看 Google Chrome 安装程序,了解它的流畅程度。
-
@Jerry Bullard :谢谢,但我认为应用程序在 clickonce 场景中独立于 Web 浏览器运行。也就是说,它无法访问 DOM 或类似的东西。
标签: .net html permissions activex prompt