Sep 21

ASP/ASP.net中处理客户端数字证书 不指定

Heck , 15:49 , 编程杂谈 , 评论(0) , 引用(0) , 阅读(1112) , Via 本站原创 | |
使用客户端数字证书和基本身份验证(Basic),域服务器的摘要式身份验证、集成 Windows 身份认证或自定义的 Form 认证等方式相比,虽然部署和管理方面稍微复杂一些,但安全性也更好一些,应用上也较为灵活。

在 ASP 和 ASP.NET 中处理和识别客户端数字证书是非常容易的,代码如下:

ASP (VBScript)语法:


ASP.NET(C#) 语法:

得到的 subject 字符串是以逗号分隔的子字段列表。例如,C=CN,O=BOC,CN=moslem ,然后将字符串分隔处理,取最后的 CN 值(可能不止一个 CN),这个值是用户的 Common Name ,即“常规名称”,一般就是用户的姓名或 ID。

拿到数字证书中的 CN 后,就可以做进一步的处理了,如对用户进行授权等。我认为比较有效的一种做法是在客户端同时启用数字证书和 Form 认证,可以通过比较 CN 和 Form 中输入的用户名的值是否匹配来做到多因子身份认证。

相对来说,ASP.NET 中提供了专门的处理客户端数字证书的 HttpClientCertificate 类,因而在程序中处理也更为方便一些。


来源:Heck's Blog
地址:http://www.hecks.tk/asp-net-digital-certificates-process/
转载时须以链接形式注明作者和原始出处及本声明,否则将追究法律责任,谢谢配合!