当前位置: 首页 > 图文教程 > 网络编程 > ASP > 在ASP/ASP.NET 中处理客户端数字证书

ASP
asp中利用数组实现数据库记录的批量录入方法
vbs(asp)的栈类
加密處理使密碼更安全[CFS編碼加密]
在asp中通过vbs类实现rsa加密与解密
披著羊皮的大野狼 - Session
简体中文编码对应器
len(),lift(),right()不能正常识别中文的解决方法
实现WEB中的@虚拟域名系统(原理篇)
巧用ASP生成PDF文件
二级域名原理以及程序,申请即可开通
无组件上传图片到数据库中,最完整解决方案
在ASP中使用SQL语句之1:SELECT 语句
在ASP中使用SQL语句之2:用WHERE子句设置查询条件
在ASP中使用SQL语句之3:LIKE、NOT LIKE和 BETWEEN
在ASP中使用SQL语句之4:联合语句
在ASP中使用SQL语句之5:开始执行
在ASP中使用SQL语句之6:存储查询
在ASP中使用SQL语句之7:ORDER BY
在ASP中使用SQL语句之8:随机数
在ASP中使用SQL语句之9:表单操作

在ASP/ASP.NET 中处理客户端数字证书


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 159 ::
收藏到网摘: n/a

 

    客户端数字证书与基本身份验证(Basic)、域服务器的摘要式身份验证、集成 Windows 身份认证或自定义的 Form 认证等方式相比,虽然部署和管理方面稍微复杂一些,但安全性也更好一些,应用上也较为灵活。

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

ASP (VBScript)语法:

    Dim subject
   subject=Request.ServerVariables("CERT_SUBJECT")

   subject=Request.ClientCertifate("Subject")  '--适用于 Subject 没有中文的证书

 ASP.NET(C#) 语法:

   string subject ;
   HttpClientCertificate hcc = Request.ClientCertificate;
   if(hcc.IsValid) = hcc.Subject;

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

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

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