首页 文章

为什么不实现IObjectSafety有所作为

提问于
浏览
2

我们有一个activex对象,它实现了IObjectSafety,表明它对脚本是安全的 . 它从受信任的站点安装 . 但我们仍然得到IE投诉,该页面上的控件对于脚本编写是不安全的 .

运行我们的activex的站点的管理员不愿意启用未标记为可安全编写脚本的控件,即使它是受信任区域也是如此 .

我们的出租车及其所有组件都已签名(我们最终通过签署进入msi安装程序的每个dll,使未经验证的发布者离开)

谁有任何关于如何打击IObjectSafety工作的想法?

1 回答

  • 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不再抱怨了 .

相关问题