我们有一个 activex 对象,它实现了 IObjectSafety 以表明它对于脚本编写是安全的。它从受信任的站点安装。但我们仍然收到 IE 投诉,称该页面上的控件对于脚本编写不安全。
运行我们的 activex 的站点管理员不愿意启用未标记为脚本安全的控件,即使它是受信任的区域。
我们的 cab 及其所有组件都已签名(我们最终通过对进入 msi 安装程序的每个 dll 进行签名,使经过验证的发布者消失)
有人对如何让 IObjectSafety 工作有任何想法吗?
确保您为 IObjectSafety 使用正确的 GUID。您的界面应如下所示,并带有特定的 GUID:
[ComImport]
// This GUID matters!
[Guid("CB5BDC81-93C1-11CF-8F20-00805F2CD064")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IObjectSafety
{
[PreserveSig]
int GetInterfaceSafetyOptions(ref Guid riid, out int pdwSupportedOptions, out int pdwEnabledOptions);
[PreserveSig]
int SetInterfaceSafetyOptions(ref Guid riid, int dwOptionsMask, int dwEnabledOptions);
}
有一些链接概述了如何实施IObjectSafety
,但这是我发现的唯一一个指出指南很重要这一事实 http://www.atalasoft.com/cs/blogs/rickm/archive/2009/06/03/net-2-0-activex-control-gotchas-safe-for-scripting-and-hooking-into-events.aspx。在我的代码中进行更改后,IE 不再抱怨。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)