首页  编辑  

IE数字签名

Tags: /超级猛料/OS.操作系统/IE.扩展/   Date Created:

我用delphi作了几个activeform,现在我将发布时生成的.cab进行数字签名,

我的浏览器时缺省安全模式,以下有两种情况

1。如果我在html中是如下的形式,浏览时将会出现我想要的情况

 (提示我的控件已经数字签名)

 <OBJECT

         classid="clsid:F9B387E5-C908-40C8-8D18-5A9F40A18411"

         codebase="/activex/ActiveFormXTestProj.cab#version=1,0,0,0"

         width=361

         height=194

         align=center

         hspace=0

         vspace=0

>

</OBJECT>

这是正确的

2。但是我想用.inf文件。即我的html用如下形式

 <OBJECT

         classid="clsid:F9B387E5-C908-40C8-8D18-5A9F40A18411"

         codebase="/activex/aa.inf"

         width=361

         height=194

         align=center

         hspace=0

         vspace=0

>

</OBJECT>

而我的.inf文件是如下写的

[Add.Code]

ActiveFormXTestProj.ocx=ActiveFormXTestProj.ocx

[ActiveFormXTestProj.ocx]

file=/activex/ActiveFormXTestProj.cab

clsid={F9B387E5-C908-40C8-8D18-5A9F40A18411}

RegisterServer=yes

FileVersion=1,0,0,0

这个ActiveFormXTestProj.cab文件用的就是第一种情况中的控件,但是

这时候用浏览器浏览时就好像这个ActiveFormXTestProj.cab没有签名似的。

总结;

 由于我在作三层,一定要将midas.dll当作additionnal file做的我的一个

控件的.inf文件中在客户的机器中注册。所以我一定用个.inf文件完成这个工作。

但是经过上面的测试,我发现控件用.inf时,数字签名好像就没作用似的,我不知

我该如何进行关于一个用.inf的控件的数字签名!

 谢谢各位大侠!

zhaohui9:

 签名需要微软或其同意的第三方同意即可,国内有很多这样的第三方,现在的问题根本就

不是能不能对我的activeform签名。

 希望大家能看清楚我的问题!

 (大家如果第一次登陆www.3721.com,会弹出一个认证框,这就是我要的东西)

 在我对我的控件成功签名后,如果我不用一个.inf文件,用起来一点问题也没有,也能够

出现认证框。这种情况是正确的。

 不过我的问题是我想用一个.inf文件,即使这个.inf文件中的控件是签过名的,在用浏览器

访问时也不能出现我想要的签名框,这才是我的问题所在!!!!

 拜托大家帮忙!!!!!!!!!

这个问题参考http://www.tarim.com.cn.这上面有这方面的详细解释

"数字签名好像就没作用似的"

具体是什么意思?

意思就是:

 当我的控件数字签名成功后,当你用浏览器(浏览器的安全级别是默认的)第一次浏览

包含这个控件的页面时,会弹出一个认证框,里面包含了这个控件的一些数字签名信息,如

这个数字签名是由哪个第三方认证公司认证的等等信息.

 这就叫数字签名起作用。

 反之,如果不出现那个认证框,就叫不起作用

( 注意:这里浏览器的安全级别都是IE的默认安全级别)

来自:iamcaca, 时间:2002-4-2 17:00:00, ID:1018721

请你参考我的代码

CAitAnlyse.inf内容:

[Add.Code]

CAiTAnalyse.ocx=CAiTAnalyse.ocx

CAiTAnalyse.lic=CAiTAnalyse.lic

[CAiTAnalyse.ocx]

file=./CAiTAnalyse.cab

clsid={039E74E6-4426-452E-BA1B-AD252B591721}

RegisterServer=yes

FileVersion=1,0,0,2

[CAiTAnalyse.lic]

file=./CAiTAnalyse.cab

CAitAnalyse.lic里只有一句

{5C3E0C7B-5DAF-47C8-BB2E-5D40EAE7CCB3}

HTML里的内容:

<OBJECT

         classid="clsid:039E74E6-4426-452E-BA1B-AD252B591721"

         id="aa"

         codebase="./CAiTAnalyse.cab#version=1,0,0,2"

         width=106

         height=74

         align=center

         hspace=0

         vspace=0

>

</OBJECT>

我的CAB是签过名的,第一次在客户运行能显示签名信息

来自:BlackDragon, 时间:2002-4-4 2:44:00, ID:1022195

看这个

經由.inf檔做進階設定  

  藉由修改.inf檔, 你可以設定你要的安裝程序. 經過修改的.inf檔可以被包含在一個用手建立的.cab檔案(使用.ddf專案檔)中. 或者可以被Object標籤中的Codebase屬性直接引用.

    

注意:一般我們並不使用.inf檔, 因為它無法讓我們為它加上數位簽名. 如果我們要使用.inf檔, 那麼控制項的.ocx檔必須要有數位簽名.

    

對一個.inf檔的典型修正包括:

˙加入一個認可協議

˙加入一個讀我檔案

˙加入附加的文件

    

注意:身為一個ActiveX控制項的發展者, 你可以修正你的網路下載元件. 但是你應該知道這樣做的話, 如果你的修正引發了不正確的結果, 你將會替你自己和你公司招致潛在的責任. 某些改變指的是你能保證, 確定或承擔, 你所做的變更是正確且可信的. 在認可協議中加入" 如…. "或者" 適當 "的條款企圖躲避掉應負的責任在很多裁決中都被判定違規.

    

這裡有一個.inf的例子:

;INF file for ControlDemo.ocx

;DestDir can be 10 for Windows directory, 11 for Windows\System(32) directory, or left blank for the Occache directory.

[version]

signature=$CHICAGO$

[Add.Code]

CONTROLDEMO.OCX=CONTROLDEMO.OCX

MSVBVM50.DLL=MSVBVM50.DLL

[CONTROLDEMO.OCX]

file-win32-x86=thiscab

RegisterServer=yes

clsid={F651BF93-239B-11D0-8908-00A0C90395F4}

DestDir=

FileVersion=1,0,0,1

[MSVBVM50.DLL]

hook=MSVBVM50.cab_Installer

FileVersion=5,0,34,21

[MSVBVM50.cab_Installer]

file-win32-x86=http://activex.microsoft.com/controls/vb5/MSVBVM50.cab

InfFile=MSVBVMB5.inf

来自:dudajiang, 时间:2002-4-4 10:53:00, ID:1022648

现在正在找工作,这个问题我都快放弃了:(

to iamcaca:

 你的

------------

[CAiTAnalyse.ocx]

file=./CAiTAnalyse.cab

clsid={039E74E6-4426-452E-BA1B-AD252B591721}

RegisterServer=yes

FileVersion=1,0,0,2

[CAiTAnalyse.lic]

file=./CAiTAnalyse.cab

----------------

中为什么[CAiTAnalyse.ocx]和[CAiTAnalyse.lic]里面file都指向同一个文件?

to BlackDragon:

 我觉得你的例子和我的需求很象,只是你的例子中的[MSVBVM50.DLL]换成我的

[midas.dll]就可以了,但是现在我没法试验我的[midas.dll]。我就是想向你明确

一下:是不是按照你的写法我的cab在数字签名后就算是用.inf也可以出现我所需要的

那个控件提示框?

 谢谢大家了!

来自:iamcaca, 时间:2002-4-4 13:10:00, ID:1022996

sorry.我的HTML里的内容写错了,应该为:

<OBJECT

         classid="clsid:039E74E6-4426-452E-BA1B-AD252B591721"

         id="aa"

            codebase="./CAiTAnalyse.inf#version=1,0,0,2"

         width=106

         height=74

         align=center

         hspace=0

         vspace=0

>

</OBJECT>

另file同时指向一个文件的原因是ocx和许可证书均在这个文件里