使用C#开发ActiveX控件全攻略(2)

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
第五部分:给安装包签名
     对于 Internet 应用程序的开发人员和用户而言,代码安全是一个主要问题。有下列风险:恶意的代码、被篡改的代码和来自未知站点或作者的代码。 
     Internet 开发时有两种保证安全的基本方法。第一种方法称为“沙箱”。在此方法中,应用程序只能访问一组特定的API,并且被从潜在危险的 API(如文件 I/O,程序可能在此毁坏用户计算机中的数据)中排除。第二种方法使用数字签名来实现。此方法对 Internet 称为“收缩包装”。使用私匙/公匙技术验证和签名代码。在代码运行之前,验证其数字签名,确保该代码的来源是已知的并且经过验证,并且自签名后该代码未被更改过。
    在第一种情形中,信任应用程序不会有任何损害,并且信任该应用程序的来源。在第二种情形中,使用数字签名来验证真伪。数字签名是用于识别和提供关于代码发行者的详细资料的工业标准。其技术基于标准,包括 RSA 和 X.509。浏览器一般允许用户选择是否希望下载并运行来源未知的代码。
    给文件签名首先要获得软件发行证书。为此,必须向证书颁发机构提出请求(比如微软或其他认证代理机构)。在申请期间,必须生成一个密匙对并向证书颁发机构提供标识信息(如名字、地址和公匙)。还必须作出在法律上具有约束力的保证,即保证您不能也不会分发您知道或本应知道含有病毒或将以其他方式恶意损害用户的计算机或代码的软件。当然,这种认证是收费的,一般在2——8KRMB不等。
    这里,我们使用Microsoft.Net带的MAKECERT和CERT2SPC实用工具生成测试的软件发行证书。然后用这个测试证书通过SignTool工具为我们的发行包签名,当然,这对软件发行是无效的,也就是说在Internet环境下还是需要修改IE安全设置才可以下载安装。但是在局域网环境下可以实现直接下载安装,仅可用于测试代码签名。
     MAKECERT.exe、CERT2SPC.exe和SignTool.exe三个工具在C:/Program Files/Microsoft SDKs/Windows/v6.0A/bin 目录下。你可以通过vs2008的“Visual Studio 2008 Command Prompt” 进入命令行状态,这时系统会自动加载对应的Path参数,你在任何一个目录下都可以直接运行着三个小工具了。
    1、用MAKECERT.exe创建用于数字签名的公钥和私钥对
        在命令行下输入“makecert -ss lwchome -n "CN=lwchome CRD公司" -sv d:/test/lwchomecert.pvk -r d:/test/wchomecert.cer”
        其中 ss- 主题的证书存储名称, n- 证书颁发对象,此名称必须符合 X.500 标准。最简单的方法是在双引号中指定此名称,并加上前缀 CN=;例如,"CN=myName"。注意这里的CN必须大写。- r- 证书存储位置, -sv 导出私钥文件(为了签名使用)。注意:这个时候会让输入三次密码,三次要完全一致。
   2、 Cert2Spc.exe 生成 spc 发行者证书: cert2spc d:/test/lwchomecert.cer d:/test/lwchomecert.spc
    3、用SignTool.exe对安装包数字签名
       在命令行下输入“signtool signwizard”,会弹出签名工具界面如下:
    点击下一步,输入安装包的位置:
 
点击下一步,选择“自定义”
点击下一步,从文件选择:
选择刚刚制作的证书 d:/test/lwchomecert.spc,点击下一步:

捕获

选择磁盘上的私密钥文件,选中刚刚生成的私密钥d:/test/lwchomecert.pvk ,然后点击下一步,输入刚刚的密码显示如下界面:

捕获

  选择md5,点击下一步:

捕获

此页无需修改,直接点击下一步:

捕获

输入描述和web位置,点击下一步:

捕获

添加时间戳http://timestamp.verisign.com/scripts/timstamp.dll ,点击下一步:

捕获

完成输入刚刚的密码即可。

这时,鼠标右击安装包文件“setup.exe”,可以查看数字签名信息:

捕获

    如果是正式发行,请从微软或代理机构申请正式证书和密钥,然后用signtool工具加密你的发行包即可。

第六部分:部署

    将签名的setup.exe拷贝到网站目录下,替换之前没有签名的安装包。用iis发布网站,注意“执行权限选择纯脚本”

C# 开发ActiveX控件全攻略 在当今的软件开发领域,随着Web技术的兴起,ActiveX控件作为一种较老的技术,其使用频率虽然大不如前,但在特定领域和老旧系统中,ActiveX控件仍扮演着不可替代的角色。特别是对于一些历史遗留系统,ActiveX控件能够提供丰富的交互式体验和功能扩展。本章将概述在C#环境下开发ActiveX控件的基础知识和关键概念,为接下来的深入学习打下坚实的基础。首先,我们将探索ActiveX控件的基本概念,以及在C#中如何利用现有的.NET框架和COM互操作技术来开发ActiveX控件 阅读详情

相关推荐

使用C#开发ActiveX控件全攻略

使用C#开发ActiveX控件全攻略 ActiveX是Microsoft对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对象模型(COM)。在有目录和其它支持的网络中,COM变成了分布式COM(DCOM)。在创建包括ActiveX程序时,主要的工作就是组件,一个可以自足的在ActiveX网络(现在的网络主要包括Windows和Mac)中任意运行的程序。这个组件就是ActiveX控件ActiveX是Microsoft为抗衡Sun Microsystems的JAVA技术而提出的,此控件的功能和JAVA applet功能类似。

使用VS2010 C#开发ActiveX控件(上)

最近做读卡器的B/S应用程序开发,由于读卡器厂商提供的手册都是C/S版本的,而且只有一个原始的Dll包,并没有web版的,那么就只好自己动手,丰衣足食了。 要开发Web版的读卡程序,大体思路如下: 1.使用C#对原始的Dll进行封装,这里要封装两部分内容,一部分是串口通信的功能,一部分是对卡读写的功能。 2.开发ActiveX控件...

weixin_30824599的博客 247

c#开发ActiveX的学习笔记

1.为什么要用ActiveX? 网页本身的功能是有限的,要想实现一些网页本身不支持的功能,比如:网页上的p2p视频播放,就得靠ActiveX这种古老的技术。 2.c#开发ActiveX吗? 严格意义上讲,c#是不能生成纯正ocx控件的,我们在vs.net中新建项目时,也找不到专门的"ActiveX项目"新建项,最多也只就能新建"类库"得到一个dll而非ocx(因此我们也无法用传统的regs...

weixin_34041003的博客 209

[转]使用C#开发ActiveX控件全攻略

更新记录:2013-10-30 在VS11下尝试了第一部分和第二部分发现没有实际的效果,遂对其进行了调整和更新。 转自:http://lwchome.spaces.live.com/blog/cns!791B533443007D37!234.entry 前言: 这段时间因为工作的需要,研究了一下ActiveX控件。总结如下: 先说说ActiveX的基本概念。 根据...

dengqi4009的博客 874

使用C#开发ActiveX控件[Obsolete]

附件下载(源代码+安装文件+教程) 0. 前言 ActiveX控件以前也叫做OLE控件或OCX控件,它是一些软件组件或对象,可以将其插入到WEB网页或其它应用程序中。使用ActiveX插件,可以轻松方便的在 Web页中插入多媒体效果、交互式对象以及复杂程序等等。 通常使用C++或VB开发ActiveX控件,本文探讨一下在Visual Studio 2005环境中使用C...

weixin_33778544的博客 377

使用C#开发ActiveX控件全攻略(1)

前言:    这段时间因为工作的需要,研究了一下ActiveX控件。总结如下:    先说说ActiveX的基本概念。    根据微软权威的软件开发指南MSDN(Microsoft Developer Network)的定义,ActiveX插件以前也叫做OLE控件或OCX控件,它是一些软件组件或对象,可以将其插入到WEB网页或其它应用程序中。    ActiveX是Microsof

TemateRoom的专栏 6745

使用C#开发ActiveX控件

最近弄了一个在Qt中使用C#控件的功能,使用的方法是通过C#生产ActiveX控件,在Qt中使用ActiveX控件。本文这里简单的介绍一下如何用C#生成ActiveX控件。 1. 建立WinForm的UserControl工程,在控件的属性页中选择"使程序集com可见"    2. 分配Guid,在控件上加上GuidAttribute,这儿定义的Guid就是你的ActiveX控件的GUI...

weixin_30735745的博客 107
上一篇: 使用C#开发ActiveX控件全攻略(1)
下一篇: 图像处理的前景
psophia
博客等级 码龄19年 30粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值