2011-06-09 44 views
0

情况如下 - 客户端使用对服务器的智能卡身份验证(F5服务器实际)。需要ActiveX组件,它会从客户端计算机收集一些数据,然后上传到服务器。问题是,该服务器非常受保护,并且只允许那些具有有效客户端证书的连接。有没有一种方法让ActiveX组件获取该证书,该证书用于打开页面,在哪个组件上驻留?或者也许有可能重用浏览器连接?ActiveX重用浏览器客户端证书

回答

0

好的。我找到了解决方案。这不是完美的,但它的工作原理。在服务器端,我读取客户端证书指纹并将其包含在网页上。 ActiveX组件稍后从html读取指纹,然后在用户证书存储中查找具有相同指纹的证书。同样适用于智能卡! :) 而不是拇指印可以使用别的东西,如证书主题,但指纹是最独特的一个。 不错的一个!

1

在IE中运行的ActiveX控件可以使用WinINET进行HTTPS连接。这些连接将使用IE正在使用的客户端证书。或者,您可以简单地让AX控件将数据提供给HTML /脚本,并让该内容执行网络流量。

+0

只有我想WinINET是历史的东西。今天从C#.NET做到这一点的好方法是什么? – 2011-06-09 15:51:25

+0

你能否给我提供一个例子。我尝试使用WebRequest类,但它没有在请求中包含客户端证书。 – 2011-06-10 13:40:20

+0

我不知道你的意思是“历史”。 WinINET是大多数Microsoft客户端应用程序使用的网络堆栈。强烈建议在.NET中编写ActiveX控件。 – EricLaw 2011-06-15 04:43:48