就是在网页中调用控件,如果不设置安全站点和级别,所调用的控件就出不来,我想要代码,怎么在内部加入相应的代码就可以自动识别和设置可信站点和级别之类的。

解决方案 »

  1.   

    修改注册表可以么A:IE 的安全属性设置是放置在注册表的以下位置的:
    HKEY_USERS\UserName\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones
    其中 UserName 是指当前进入系统的用户所使用的用户名
    在 Zones 主键下又有 0、1、2、3、4 五个主键,分别的含义是: 
    0:您的计算机本地的设置
    1:本地 Intranet
    2:可信站点
    3:Internet
    4:受限站点除 0 项外,其他每个主项中又都包括有很多子项,其中的一部分就是用来设定安全设置的。详细内容如下:1、每个子健都有相关状态:
    0:启用、自动使用当前用户和密码、禁用Java
    1:提示
    3:禁用
    $10000:用户密码登录、安全高级、管理员认可
    $20000:Intranet区域自动登录、安全中级
    $30000:匿名登录、安全低级
    $80000:自定义Java2、相关主键的含义及状态是:1405:标记为安全可执行的ActiveX控件执行, 状态:0、1、3
    1201:执行没有标记为安全的ActiveX控件, 状态:0、1、3
    1004:下载未签名的ActiveX控件, 状态:0、1、3
    1001:下载已签名的ActiveX控件, 状态:0、1、3
    1200:运行ActiveX控件和插件, 状态:0、1、3
    1A02:允许使用存储在你机器上的Cookie, 状态:0、1、3
    1A03:允许使用每一个对话Cookie, 状态:0、1、3
    1C00:java权限, 状态:0、$10000、$20000、$30000、$80000,
    其中 $80000 是知自定义 Java 权限,一旦选中该项,系统将添加一字符串
    序列键值来修改数据,其中的详细含义我就不介绍了
    1402:Java小程序脚本, 状态:0、1、3
    1400:活动脚本, 状态:0、1、3
    1407:允许利用脚本进行粘贴, 状态:0、1、3
    1606:持续使用用户数据, 状态:0、3
    1607:跨域浏览子框架, 状态:0、1、3
    1A04:无证书或单证书不作证书提示, 状态:0、3
    1E05:软件频道权限,状态:0、$10000、$20000、$30000
    1601:提交非加密表单数据, 状态:0、1、3
    1406:通过域访问数据资源, 状态:0、1、3
    1802:拖放或复制和粘贴文件, 状态:0、1、3
    1804:在 IFRAME 中加载程序和文件, 状态:0、1、3
    1800:桌面组件安装, 状态:0、1、3
    1803:文件下载, 状态:0、3
    1604:字体下载, 状态:0、1、3
    1A00:登录, 状态:0、$10000、$20000、$300003、安全级别主键:CurrentLevel: 当前使用的
    MinLevel: 最小
    RecommendedLevel:推荐相关键值为:$00012000:高,$00011000:中,$00010500:中低,$00010000:低
      

  2.   

    你要是自己做安装包的话实现IObjectSafety接口
      

  3.   

    运行中的控件权限很低,无法修改IE的安全选项,要不然IE就没有安全性可言了。
      

  4.   

    我就是不懂怎么实现IObjectSafety接口啊,谁会能说的详细点吗,谢谢了啊
      

  5.   

    有两种方法提供控件的脚本操作安全性保证。第一种是使用组件分组管理器在组件导入以后在注册表上面创建正确的入口,IE在脚本操作之前检查注册表确认安全性;第二种是实现一个 IObjectSafety 接口到控件,如果IE发现控件支持 IObjectSafety,就在导入控件之前调用 IObjectSafety::SetInterfaceSafetyOptions 方法来确保安全性脚本操作。
    我都查到了这些,但这些说的我都不懂,谁知道怎么回事,能否说的清楚点吗?
      

  6.   

    你是控件是用什么库的?mfc?atl?
      

  7.   

    几乎不用实现,IObjectSafe只要能被IE queryinterface得到,即可在标准安全状态下被IE创建。也就是他的每个成员函数直接返回S_OK就成。
    不过想让IE下载ActiveX的cab包是不可能的,必须有合法CA的数字签名。你可以做成安装包让用户点击下载安装。
      

  8.   

    public IObjectSafety 
    ......
    STDMETHODIMP GetInterfaceSafetyOptions(
    REFIID riid,
     DWORD *pdwSupportedOptions,
     DWORD *pdwEnabledOptions)
    {
    return S_OK;
    }STDMETHODIMP SetInterfaceSafetyOptions( 
    REFIID riid, DWORD dwSupportedOptions, DWORD dwEnabledOptions )
    {
    return S_OK;
    }