我用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和许可证书均在这个文件里