C#开发之 ActiveX发布

 1. 打包

   C#开发的Activex不像`OCX`那样直接通过`regsvr32.exe`注册,而采用两种方式发布使其运行在浏览器上。

        1. 离线安装:将控件类库打包成MSI安装包,然后在客户端安装。
    1.1. 添加安装项目

1.2. 右键“添加”->“项目输出”,选择ActiveX控件为“主输出”

1.3. 双击“解决方案资源管理器”的“检测到的依赖项”下的 Microsoft.NET Framework 并修改“启动条件”下 .NET Framework 的Version为.NETFramework2.0 ??

1.4. 修改“主输出来自XXX”的 Register 属性为 vsdrpCOM

2. 在线安装:将MSI再封装成CAB包,并将CAB包随应用一同发布,当浏览器访问含该ActiveX控件时就会自动提示安装。
    
2.1. 定义cab.ddf 

.OPTION   EXPLICIT
.Set Cabinet=on
.Set Compress=on
.Set MaxDiskSize=CDROM
.Set ReservePerCabinetSize=6144
.Set DiskDirectoryTemplate="."
.Set CompressionType=MSZIP
.Set CompressionLevel=7
.Set CompressionMemory=21
.Set CabinetNameTemplate="自定义CAB文件名.CAB"
"installer.inf"
"打包的msi文件名称.msi"

              2.2. 定义installer.inf

[Setup Hooks]
hook1=hook1

[hook1]
run=msiexec /i %EXTRACT_DIR%\打包的msi文件名称.msi /qn

[Version]
Signature= "$CHICAGO$"
AdvancedInf=2.0

              2.3. 定义makecab.bat

makecab.exe   /f   "cab.ddf"

              2.4. 执行makecab.bat就会生成CAB包

 2. 签名

  1. 制作cer证书
    使用makecert.exe工具生成cer证书(工具在`C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin`)

cmd命令

makecert -r -n "CN=发行者名称" -b 01/01/2012 -e 01/01/2018 -sv 证书文件名称.pvk 证书文件名称.cer

注意:执行命令后将弹出私钥密码对话框,可以设置或不设置私密。

  2. (可选项)将cer证书转换为spc证书
    使用cert2spc.exe工具(工具在`C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin`)

cmd命令

cert2spc cer证书文件名.cer spc证书文件名.spc

3. 将cer证书转换为pfx证书
    使用pvk2pfx.exe工具将cer证书转换为pfx证书(PKCS#12证书及私钥)(工具在`C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin`)
    cmd命令格式:

pvk2pfx /pvk pvk证书文件名.pvk [/pi pvk证书密码] /spc cer或spc证书文件名.cer或spc [/pfx pfx证书名称.pfx] [/po pfx证书的私密] [/f]

说明:
  若第一步中,没有设置私钥,那么就`/pi pvk证书密码`就不用填写;
  若`/po pfx证书的私密`没有填写,那么pfx证书就使用与pvk证书一样的私钥;
  如果存在于-pfx指定的名称相同名称的文件,则需要使用`/f`来覆盖已有的.pfx文件。

示例,cmd:

pvk2pfx /pvk fsgmcc.pvk /pi gmcc123 /spc fsgmcc.cer /pfx fsgmcc.pfx  /f

4. 通过signtool导入证书到cab的ActiveX文件
    signtool是vs2010的AuthentiCode签名工具(使用 PKCS#7标准定义的数据结构生成待签名文件的数字签名,并加入到待签名文件的PE结构中即可)。

cmd命令

signtool sign -f pfx证书文件名.pfx [-p pfx密码] ActiveX控件文件.CAB

实例:

    signtool sign -f fsgmcc.pfx DirBrowser.CAB

部署:

    

ActiveX的部署其实就是客户端安装ActiveX组件,对未签名和已签名的ActiveX,分别有对应的部署方式。

  1. 部署未签名的ActiveX

  未签名的ActiveX控件不受浏览器端信任,默认是不被允许安装的
  1. 将网站加入 **可信站点**
  2. 在“可信站点”和“Internet”下的 **自定义级别** 中确认“对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本”项设置为“启用”,“下载未签名的ActiveX控件”项设      置为“提示”。

 

  2. 部署已签名的ActiveX

  1. 客户端获取pfx证书
      2. 客户端安装证书

点击“安装证书”按钮,将该证书安装到“受信任的根证书颁发机构”

开IE的“工具->Internet选项”对话框,选择“内容”选项卡,点击“证书”按钮,打开IE证书对话框,确认在“受信任的根证书颁发机构”选项卡中包含刚才导入的代码签名证书

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值