在asp.net中实现证书授权

本文关键字:证书 授权 实现 asp net | 更新日期: 2023-09-27 17:49:49

首先我很抱歉我的英语很差。

这两天我看了很多书,但还是没有找到解决问题的办法。

我需要执行这样的授权:用户打开网页,会出现特殊的表单。在这个表单上只有一个按钮"选择证书文件"。当用户单击它-他必须选择证书文件,这将用于授权。这个文件必须是存储在闪存盘上等等。

我读过cer/pfx文件,但是没有关于这种模型的。

也许在。net中使用这些类是不可能实现的

System.Security.Cryptography.X509Certificates.X509Certificate
System.Security.Cryptography.X509Certificates.X509Certificate2

同时表单授权将在本站点上实现,因此用户可以选择如何授权。

更新:我认为这些类不能用于这个模型。你还能给我一些建议吗?

在asp.net中实现证书授权

首先你需要一个启用SSL的网页。您不能使用包含的开发web服务器(cassini)来开发它。可以使用IIS Express或本地IIS实例开发这样的身份验证模型。不能直接从代码控制SSL身份验证,它取决于IIS网页文件夹设置。看一看这篇文章。

对于GUI体验,证书通常存储在证书存储库中,这是安全的,并且不能从客户端页面/脚本中进行控制。当web浏览器收到客户端证书协商请求的响应时,将显示一个特定于浏览器/平台的对话框,显示所有兼容的客户端证书。在服务器端,您可以通过从受信任的证书颁发机构安装适当的根证书来控制客户端可以选择哪些证书。但是,您无法控制哪些证书(它们是存储在受支持的智能卡上还是存储在本地硬盘上)可供客户端进一步选择。

在你的情况下,我认为你想要的是不可能在web浏览器中通过客户端认证的HTTPS会话,因为你无法控制它如何管理它的证书存储。

但是,如果您开发了一个可以访问客户端USB驱动器上的便携式证书存储的插件,这将是可能的。我想我会在后台运行一个JAVA applet,并创建一个可以从页面的javascript访问的公共API,原因如下:

  • 可在多个平台/浏览器
  • 可以满负荷运行启用SSL的web页面中的信任模式
  • 可以威胁PFX文件作为证书商店(见)

您需要自己实现身份验证/握手部分,例如让applet使用XMLDSIG(它可以包含歌手的公钥,并且在。net中得到支持)对XML文档/片段(也可以包含用户名和密码哈希)签名。在成功验证签名的XML之后,您就可以向客户机返回一个正常的身份验证cookie。