客户端数字证书与基本身份验证(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 类,因而在程序中处理也更为方便一些。
相关视频
相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么
热门文章 没有查询到任何记录。
最新文章
VB.NET 2005编写定时关
Jquery get/post下乱码解决方法 前台gbk gb如何使用数据绑定控件显示数据ASP脚本循环语句ASP怎么提速
人气排行 轻松解决"Server Application Error"和iis"一起学习DataGridView调整列宽用ASP随机生成文件名的函数Jquery get/post下乱码解决方法 前台gbk gbODBC Drivers错误80004005的解决办法返回UPDATE SQL语句所影响的行数的方法用Javascript隐藏超级链接的真实地址两个不同数据库表的分页显示解决方案
查看所有0条评论>>