我们有一个activex对象,它实现IObjectSafety以指示脚本安全。它从受信任的站点安装。但我们仍然得到IE投诉,该页面上的控件对于脚本编写是不安全的。
运行我们的activex的网站的管理员不愿意启用未标记为可安全编写脚本的控件,即使它是受信任的区域。
我们的出租车及其所有组件都已签名(我们最终通过签署进入msi安装程序的每个dll,使未经验证的发布者离开)
任何人都对如何打击IObjectSafety工作有什么想法?
答案 0 :(得分:3)
确保您使用的是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
,但这是我发现calls out the fact that the Guid matters的唯一链接。在我的代码中进行了更改后,IE不再抱怨了。