欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Asp Object 之:ClientCertificate

程序员文章站 2022-04-15 12:52:09
ClientCertificate ClientCertificate 集合从 Web 浏览器发布请求中获取验证字段(由 X.509 标准指定)。 如果 We...

ClientCertificate

ClientCertificate 集合从 Web 浏览器发布请求中获取验证字段(由 X.509 标准指定)。

如果 Web 浏览器使用 SSL3.0/PCT1 协议(也就是说,它使用以 https:// 开头的 URL,而不是 https://)连接服务器及服务器请求验证,则浏览器将发送验证字段。

如果没有发送验证,ClientCertificate 集合将返回 EMPTY。

必须先将 Web 服务器配置为要求客户端验证,然后才能使用 ClientCertificate 集合。

语法

Request.ClientCertificate( Key[SubField] )

 

参数

Key
指定要获取的验证字段名称。客户端验证包括下列字段。
意义
Certificate 按 ASN.1 格式的二进制流字符串,其中包括完整的验证内容。
Flags 一组标志,提供其他客户端验证信息。可以设置下面的标志:

ceCertPresent - 当前的客户端验证。

ceUnrecognizedIssuer - 该链上来自未知的发布者的最后一个验证。

注意 要使用以上标志,必须在 ASP 页中包含客户端验证包含文件。若您正在使用 VBScript,则应包含 cervbs.inc。这些文件安装在 InetpubASPSampSamples 目录下。

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 值。
意义
C 指定原国家(地区)名。
CN 指定公用用户名。(此子字段仅同 Subject 关键字一起使用。)
GN 指定给定的名称。
I 指定一组首字母。
L 指定所在地。
O 指定公司或组织名称。
OU 指定机构的名称。
S 指定州或省。
T 指定此人或组织的头衔。

与在上述列表中所列的值不同,SubField 的值可被 ASN.1 标识所识别。ASN.1 标识的格式是一串通过句点 (.) 分隔的一系列数。例如: 3.56.7886.34。

注释

可以通过关键字用循环来遍历 ClientCertificate 集合。下面的例子对此进行演示。

<%

For Each key in Request.ClientCertificate

  Response.Write( key & ": " & Request.ClientCertificate(key) & "<BR>")

Next

%>

 

示例

下面的示例使用 Subject 关键字测试客户端验证是否存在。

<%

If Len(Request.ClientCertificate("Subject")) = 0

  Response.Write("No client certificate was presented")

End if

%>

 

下面的示例获取发布客户端验证的公司的公用名。

<%= Request.ClientCertificate("IssuerCN") %>

 

下面的示例检查客户端验证主题的组织名。

<% 

If (Request.ClientCertificate("Subject")="Msft")

  Response.Write("Good Choice!")

End if

%>

 

下面的示例显示客户端验证何时到期。

This certification will expire on 

<%= Request.ClientCertificate("ValidUntil") %>

 

下面的示例使用 Flags 关键字测试客户端验证的发布者是不是已知的。第一行的 include 命令使脚本可使用已命名标志 ceUnrecognizedIssuer

<!--#include file="cervbs.inc" -->

<%

If Request.ClientCertificate("Flags") and ceUnrecognizedIssuer then

  Response.Write "Unrecognized issuer"

End If

%>

 

应用于

Request 对象