使用MFC ActiveX开发OCX控件,需要在IE下自解压注册安装,但是OCX并不可自行解压安装,因而要打包成cab才能完成这个操作。下面来完成一下具体的打包工作流程。
首先,当然要先开发OCX控件,这个不多述了,自行完成即可,记住实现OCX安全机制接口。
其次,要使用签名证书为OCX签名,不然客户端IE浏览器不会买账的,至于证书,大家可以通过天威诚信等证书机构了解,我们还是先来说说证书签名的流程吧。
一个证书包含有公钥和私钥,一般情况下,私钥都需要设置密码进行加密。证书有两种格式的,一种是包含了公钥和私钥的pfx格式的证书,一种是公钥和私钥分开的证书(.cer、.pvk),这里只说pfx格式的证书签名。
至于.pfx签名,也有两种情况,一种是先导入到根证书,另一种是在签名时再导入签名,这里我使用的是第一种方法。
双击xx.pfx证书,弹出窗口如下:
点击下一步,
浏览选择你的证书,
输入证书私钥,点击下一步,
点击下一步,
点击完成,即完成证书的导入工作。下载签名工具包(签名证书制作不作详述),从windows dos命令行进入工具包所在文件目录,如:
进入目录后,输入:signcode,即会弹出控件签名窗口:
点击下一步,
浏览选择需要签名的控件程序,点击下一步,
这里选择典型安装即可(如果证书不是首先导入到根证书的,选择自定义安装,这样在下一步可以从文件选择证书进行签名),点击下一步,
因为我之前是用导入的方式,先将证书导入到根证书,所以这里,我使用“从存储区选择”,点击下一步,
以上两项都是可选的,填上相应的信息或者不填都可以,继续点击下一步,
时间戳服务也是可选的,可不填,继续点击下一步,
点击完成,即可完成对OCX(CAB)的证书签名工作。
至此,我们完成了对OCX的签名,接下来还需要对OCX进行打包CAB自解压文件。首先,我们编写一个inf配置文件:
注意OCX文件和inf配置文件要放在同一目录下
至此,就完成了基础工作了,接下来,下载IExpress打包工具将OCX打包CAB
打开IExpress,如下图
保留默认选项,点击下一步,
选择第三项“仅创建压缩文件(ActiveX Installs)”,点击下一步,
点击添加,将已签名的OCX和inf配置文件选上,点击下一步,
输入CAB文件名称,选择“在压缩包中使用长文件名储存文件”,点击下一步,
点击不保存,继续下一步,
点击下一步,即可完成对OCX打包CAB的工作。
接着最后,只需要对打包好的CAB进行签名即可。
创建Web项目,在项目页面中调用CAB的方法,源码如:
<OBJECT name="xn_pos"
ID="Test"
CLASSID="CLSID:D8894225-3374-4CE3-85F8-89BCAE18B8C4"
CODEBASE="<%=request.getContextPath()%>/speed.CAB#version=1,0,0,1" ></OBJECT>
CLASSID是CAB的类ID,同时需注意添上CODEBASE,主要用于客户端从服务器下载CAB,至此,完成了Tomcat整个部署流程。