0708 VB ACTIVEX OCX 控件 WINXPSP2

为什么 Internet Explorer 阻止使用某些 ActiveX 控件?
如果网站尝试使用 ActiveX 控件的方式不是设计应采用的方式,Internet Explorer 将阻止网站在您计算机上使用该 ActiveX 控件。应该立即离开该网站。

在这种情况下,您将看到以下消息(单击下面的文字以了解详细信息):

“Internet Explorer 已经阻止此站点用不安全方式使用 ActiveX 控件。因此,此页可能显示不正确。”

当网站尝试使用对您计算机上的特定 ActiveX 控件不安全的方法访问该控件时,该消息将出现。通常这意味着该网站正在使用脚本(一种小的计算机程序)来访问对脚本不安全的 ActiveX 控件。Internet Explorer 将阻止该操作。要避免破坏您的计算机,您不应该尝试解决这一问题。而应该离开该网站。

Code Signing for Digital IDs
VeriSign Code Signing Digital IDs enable software developers to add a digital signature to software and macros including Microsoft Authenticode, Microsoft Office and VBA Signing, Sun Java Signing, Netscape Object Signing, Macromedia Shockwave, and Marimba Castanet Channel Digital IDs for secure delivery over the Internet. Digital IDs are virtual "shrinkwrap" for your software; if your code is tampered with in any way after it is signed, the digital signature will break and alert customers that the code is not trustworthy.
 CodeSigner Standard CodeSigner Pro
 3-Year*  $431/year (over $200 total savings)  N/A*
 2-Year* $447/year (over $100 total savings) N/A*
 1-Year $499 $695
 * Not applicable to Macromedia Shockwave and Marimba Castanet Channel.

Authenticode和ActiveX控件

  现在Windows IE默认阻止非法签名的ActiveX控件的安装。你可以改变你所管理的系统的这项设置,但你不能指望互联网用户会克服这个问题。

在WindowsXPServicePack2(SP2)中,ActiveX控件的模式安装提示最初由“信息栏”阻止。如果满足下列条件,则对已安装在计算机上的控件进行升级时,就会引发一个异常:
■注册为ActiveX控件的文件必须使用Authenticode技术签名。(该文件引用自HKEY_CLASSES_ROOT\\CLSID\\&leftsign;control_clsid&rightsign;\\InProcServer32,其中control_clsid为CLSID,由OBJECT标记指定。)
■新控件的发布者名称以数字签名表示,它与现有控件数字签名中的发布者名称相匹配。
■如果ActiveX控件打包为一个CAB文件,则该CAB文件必须经过签名。要安装的DLL或OCX也应该进行签名,以便随后的升级可以跳过“信息栏”。
如果“信息栏”阻止某个ActiveX控件,并且该控件会占用页面上的区域,则InternetExplorer将显示一个嵌入式图标和文本(而不是控件),表示需要安装ActiveX控件。最终用户将能够单击该区域或“信息栏”,以安装ActiveX控件。

ActiveX控件是否以CAB文件的形式分发?

如果是,请注意有关升级该控件的未来安装提示也会被“信息栏”阻止,除非您对要注册为ActiveX控件的DLL或OCX进行签名。

 jiangsheng(蒋晟.Net[MVP]) ( ) 信誉:290  2006-4-4 14:28:23  得分: 0 
记得WinXPSp2里面ActievX的限制更加严格,没有数字签名的控件会被禁用。对实现了IObjectSafety的控件也会有警告
 
 实现了ISafeObject接口或是使用分组管理器(Component Categories Manager)标记安全控件后还是无法在某些XP的客户机上显示出我的控件。整理了一下出现问题的机器状况:

前提:
1。在Ax控件中已经实现了ISafeObject接口(或是修改了注册表)
2。客户IE出现控件下载提示,确认下载。
3。查看注册表,发现我的CAB中的控件(ocx)及其依赖的DLL已经成功的注册到机器中。(这点很重要,因为这说明了我的cab没有问题,即使在本机上用regsvr32手动注册这台机器也无法使用控件)
4。控件的签名是使用工具“makecert.exe”和“cert2spc.exe”工具生成的采用的“不安全的根证书”生成的签名证书和密钥,并使用了“signcode.exe”对控件进行了签名。
症状:
无法在某些XP SP2 的IE上显示控件(实际上控件已经注册成功了)
结果:
上网搜索后,有微软关于XP SP2的说明,说是SP2补丁导致很多控件的无法正常的使用,提供了一个办法,将访问服务器的站点添加到“受信任的站点”(IE的“Internet选项”中,注意不要选择“对改区域内的所有站点都要求验证(https://)”),这时某些有问题的SP2机器上显示出来。
疑问猜想:
1。有些机器可以显示,有些不能显示,这可能和系统的某些未知补丁有关系
2。花钱注册了控件签名是否能够解决这一问题
3。在有的(只有一台,正版XP sp2, 经常升级补丁),使用regsvr32 来注册OCX都不可以?

Windows Sever 2003 证书服务自己申请证书服务:
1.  插入Win2003的安装光盘,添加Windows组件“证书服务”。(安装“证书服务”前最好确认你的系统是否安装好了IIS服务,如果没有先安装好IIS)。
2.  安装好“证书服务”,你的IIS增加一个certsrv的站点,这时候你访问
http://www.yippeesoft.com /certsrv (例如我的机器名为SLife-ML,servername就是SLife-ML)
3.  访问页面后就可以申请证书
4.  然后点击“开始”->“管理工具”->“证书颁发机构”,在“挂起的证书”中就会出现你刚才申请的证书编码,右键点击后同意颁发。
5.  从新访问http://www.yippeesoft.com /certsrv,然后选择“查看挂起的证书申请的状态”,就可以下载安装你需要的证书了
注意:
1.  如果安装前没有安装IIS,安装“证书服务”后再安装IIS不会有certsrv站点
2.  我们申请的证书(用于ActiveX控件的认证)申请证书时需要申请“高级证书”->“创建并向此 CA 提交一个申请” 这边有以下几点需要注意:
1)        “国家(地区)”填入“CN”
2)        要勾选“标记密钥为可导出”以及勾选“导出密钥到文件”,最后给你的密钥起个名字,这时你下载证书时,就会同时下载一个密钥到你指定的目录了
3)        “证书服务”只能在Windows Server 2003中使用。
可参见:
http://www.microsoft.com/technet/prodtechnol/windowsserver2003/zh-chs/library/ServerHelp/590fcc3e-c54f-48b7-95f2-45ee2255fc11.mspx?mfr=true

历史博文

标签:, , , , , , , , ,
十二月 21, 2006 at 9:24 上午 by yippee 1,106 次
Category: Dev
Tags: , , , , , , , , ,