C# activex 发布注册

gctren 2008-07-08 11:37:40
我有和C# 写了一个WINFORM 的ACTIVEX ,需要在WEB 中去发布使用。
代码我已经在开发完成,在我本地编译注册,可以正常使用。但在客户端,需要下载ACTIVEX注册 才能使用,为此我写了如下操作:

1,添加安装PROJECT(ActivexSetup), 将ACTIVEX 的项目的DLL 作为输出项。
2.添加一个CAB 项目,将ActivexSetup 生成的 ActivexSetup.MSI 安装文件作为输出项。
3.添加一个cab.inf 文件 将其打到CAB中。
INF 文件内容:
[Setup Hooks]
hook1=hook1

[hook1]
run=msiexec.exe /i %EXTRACT_DIR%\ActivexSetup.msi /qn

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

如此操作后,将CAB 文件放到了WEB PROJECT 目录下, WEB 页面的引用ACTIVEX 对象处:
<object id="WinForm" classid="clsid:9E0679A1-7862-4137-BBDA-336E75FA8C08" codebase="Cab1.CAB" height="58"></object>
但在客户端,能检测能要下载ACTIVEX ,但点击安装后还是没有安装成功, 每次进入此页面都得重装下载安装。

各位大哥,帮忙看看,是我那边做的有问题。谢谢。
...全文
2529 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
ningailin 2010-02-21
  • 打赏
  • 举报
回复
请问,为什么我无法添加输出项目组呢?
AdaEniac 2010-01-13
  • 打赏
  • 举报
回复
有用,有用!!!
刚好我也遇到这个问题!
rockyvan 2008-07-09
  • 打赏
  • 举报
回复
mark
jhj2002 2008-07-09
  • 打赏
  • 举报
回复
呵呵,涨见识了,还没有遇到这个问题.标个记.
gctren 2008-07-09
  • 打赏
  • 举报
回复
嗯。 做出来了, 没有用证书, 用REGSAM 注册下DLL 就可以了。 不需要去打安装包,做证书, 那么麻烦了。 呵呵。 中午结贴, 感谢dk385 的支持。
gctren 2008-07-09
  • 打赏
  • 举报
回复
对这方面 是不懂啊。 没搞过。
gctren 2008-07-08
  • 打赏
  • 举报
回复
如何数据签名?
家鸣 2008-07-08
  • 打赏
  • 举报
回复
ACTIVEX 是需要数字签名的,没有认证的ACTIVEX控件,IE不会安装。这是为了安全。
gctren 2008-07-08
  • 打赏
  • 举报
回复
我使用的环境是 NET2008
gctren 2008-07-08
  • 打赏
  • 举报
回复
自己先顶一个。
家鸣 2008-07-08
  • 打赏
  • 举报
回复
看来LZ还没明白这个过程。
1.客户端不用去申请证书,只需安装证书服务的根证书。(如果你有钱,可以到外面买个数字证书,这步都可省去)
2.申请证书是发布ACTIVEX前做的工作,申请到的数字证书是用来对ACTIVEX进行签名的。
gctren 2008-07-08
  • 打赏
  • 举报
回复
那客户端得先去申请证书啊, 我是要在我的ACTIVEX 发布中实现。 客户端只需下载ACTIVEX 就实现对其进行注册, 这个功能在NET2008和XP 系统的环境下的实现是如何来做?
家鸣 2008-07-08
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 dk385 的回复:]
这个正常,你数字签名用到的数字证书如果不是受信任的颁发机构颁发的,就有这种情况。
1.可以在你Server版的系统中安装证书服务,然后向它申请证书,并用申请到的证书来签名ACTIVEX控件。
2.装完安装证书服务后它有个根证书,在客户端安装这个根证书,安装后,你的证书服务颁发的证书对于这个客户端就是受信任的了。
3.也可以向IE默认的受信任证书颁发机构申请证书,但这个是要钱的, 如果只是局域网内使用,没有必要。
[/Quote]
前面1,2在局域网可考虑。

我说的没有必要是:没必要花钱去申请证书。第3点。
3.也可以向IE默认的受信任证书颁发机构申请证书,但这个是要钱的, 如果只是局域网内使用,没有必要。
gctren 2008-07-08
  • 打赏
  • 举报
回复
我是局域网内使用。 如果像你先说的,没有必要的话, 那我的客户端那边为什么,还是不能正常安装上去呢? 还有那个地方有问题? 谢谢。提醒下。
家鸣 2008-07-08
  • 打赏
  • 举报
回复
这个正常,你数字签名用到的数字证书如果不是受信任的颁发机构颁发的,就有这种情况。
1.可以在你Server版的系统中安装证书服务,然后向它申请证书,并用申请到的证书来签名ACTIVEX控件。
2.装完安装证书服务后它有个根证书,在客户端安装这个根证书,安装后,你的证书服务颁发的证书对于这个客户端就是受信任的了。
3.也可以向IE默认的受信任证书颁发机构申请证书,但这个是要钱的, 如果只是局域网内使用,没有必要。
gctren 2008-07-08
  • 打赏
  • 举报
回复
数字签名已经签上了, 但我用chktrust.exe 去检测签名的时候,cab文件运行起来是未知发行商, 无法验证发行者, 这个安全警告, 这是那边还没有做对呢?
家鸣 2008-07-08
  • 打赏
  • 举报
回复
signcode这个vs2003有带的,不用去下载。 找不到的话留个邮箱,我发给你。
gctren 2008-07-08
  • 打赏
  • 举报
回复
FRAMEWORK 到不是问题。 所有客户端都会有的, 是内部系统。
gctren 2008-07-08
  • 打赏
  • 举报
回复
都是用SIGNCODE 进行签名的, 这个工具现在都找不到下载, 微软上都找不到。 哎。
不知道 SIGNTOOL 是否可以, 只是不知道如何用。
wufan110 2008-07-08
  • 打赏
  • 举报
回复
建义用C++
否则客户端只有装了.NET FRAMWORK才能运行的.
加载更多回复(1)

110,585

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧