在ASP/ASP.NET页面上读取客户端数字证书有两中方法,分别是读取Request.ClientCertificate(key[SubField])和读取Request.ServerVaribles(Server Environment Variable)。
1.读取Request.ClientCertificate(key[SubField])
ClientCertificate集合是X509标准规定的从Web浏览器发布请求中获取证书验证字段。如果Web服务器没有要求客户端证书验证,ClientCertificate集合将返回EMPTY。它的语法如下所示。
Request.ClientCertificate(key[SubField])
参数:Key指定要获取证书字段的名称。对于Key,该集合具的关键字如下表所示:
表 .ClientCertificate(key[SubField])支持的key关键字和意义
值 |
意义 |
Certificate |
ASN.1 格式的二进制流字符串,即完整的证书内容。 |
Flags |
一组标志,提供其他客户端证书信息。可以设置下面的标志:ceCertPresent(当前的客户端证书)和ceUnrecognizedIssuer(该链接上来自未知的发行者的最后一个证书)。 |
Issuer |
包含子字段值的列表的字符串,此列表包含证书颁发者的信息。若该值在无SubField项的情况下指定,则ClientCertificate集合返回一个以逗号分隔的子字段列表。例如:C=US, O=Verisign等。 |
SerialNumber |
包含证书的序列号的字符串,序列号以连字符(-)分隔的16进制ASCII码表示,如04-67-F3-02 |
Subject |
包含子字段值的列表的字符串,此列表包含有关证书的主题信息。若该值在无SubField项的情况下指定,则 ClientCertificate 集合返回一个以逗号分隔的子字段列表。例如,C=US, O=Verisign 等。 |
ValidFrom |
指定证书何时有效。此日期遵循VBScript格式并随国家(地区)设置而变化。例如,在美国可表示为9/26/96 11:59:59 PM |
ValidUntil |
指定证书何时到期 |
SubField为可选参数,用于按Subject或Issuer关键字检索单独的字段。此参数作为一个后缀添加到Key参数中,如IssuerO或SubjectCN。下表列出了一些通用的SubField值。
表 SubField支持的参数和意义