我已经将控件签名,并放到页面,可浏览器正常下载该控件之后,老是说“该页存在潜在的对ActiveX控件不安全的信息。当前的安全设置禁止以该方式运行控件。因此,可能无法正确显示该页”。我的浏览器按默认设置了安全等级,我曾经见到的从某些网站上下载的签名ActiveX控件,不会受到浏览器安全级的限制,只要该控件是签了名的,浏览器不会提示“不安全”。我又打开我的签名证书,里边也没说什么不正常。
请问高人,这是怎么回事,除了降低浏览器安全级,还有别的办法吗?
================================================================CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!★  浏览帖子速度极快![建议系统使用ie5.5以上]。 ★  多种帖子实现界面。 
★  保存帖子到本地[html格式]★  监视您关注帖子的回复更新。
★  可以直接发贴、回复帖子★  采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录! 
★  支持在线检测程序升级情况,可及时获得程序更新的信息。★★ 签名  ●  
     可以在您的每个帖子的后面自动加上一个自己设计的签名哟。Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
Http://www.ChinaOK.net/csdn/csdn.exe    [自解压]

解决方案 »

  1.   

    把你的控件声明为初始化安全和脚本语言安全的就行了,atl的实现如下,从这个继承
    public IObjectSafetyImpl<CYourComClass,                        INTERFACESAFE_FOR_UNTRUSTED_CALLER |  INTERFACESAFE_FOR_UNTRUSTED_DATA>
    接口映射表里添加
    COM_INTERFACE_ENTRY(IObjectSafety)
      

  2.   

    把你的控件声明为初始化安全和脚本语言安全的就行了,atl的实现如下,从这个继承
    public IObjectSafetyImpl<CYourComClass,                        INTERFACESAFE_FOR_UNTRUSTED_CALLER |  INTERFACESAFE_FOR_UNTRUSTED_DATA>
    接口映射表里添加
    COM_INTERFACE_ENTRY(IObjectSafety)添加下面的
    BEGIN_CATEGORY_MAP(CYourComObject)
      IMPLEMENTED_CATEGORY(CATID_SafeForScripting)
      IMPLEMENTED_CATEGORY(CATID_SafeForInitializing)
    END_CATEGORY_MAP()
      

  3.   

    可是我怎么样在我的ActiveX控件里加入这个接口声明呢?
    另外,这个接口里的部分方法要我来实现吗?
      

  4.   

    可是我怎么样在我的ActiveX控件里加入这个接口声明呢?
    另外,这个接口里的部分方法要我来实现吗?
      

  5.   

    不用你写任何代码,只要添加了我说的那些就行了。接口声明就是在接口映射表里添加的那一项啊?还有就是要把CYourComClass替换成你自己的CoClass的名称
    BEGIN_COM_MAP(CYourComClass)
    ...
    COM_INTERFACE_ENTRY(IObjectSafety)
    END_COM_MAP()
      

  6.   

    我的工程不是基于Atl的控件工程,而是MFC的ActiveX控件工程,MFC把接口的声明和接口映射都封装了,我根本看不到你上面说的接口声明和接口映射,所以无发把这个接口加入,其实,要是在Atl工程里加上面的代码我是会做的,但在我目前的ActiveX控件工程里找不到要加入的地方。
      

  7.   

    我的工程不是基于Atl的控件工程,而是MFC的ActiveX控件工程,MFC把接口的声明和接口映射都封装了,我根本看不到你上面说的接口声明和接口映射,所以无发把这个接口加入,其实,要是在Atl工程里加上面的代码我是会做的,但在我目前的ActiveX控件工程里找不到要加入的地方。