明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

Asp Object 之:ClientCertificate

[摘要]ClientCertificateClientCertificate 集合從 Web 瀏覽器發(fā)布請求中獲取驗證字段(由 X.509 標準指定)。 如果 Web 瀏覽器使用 SSL3.0/PCT1 協(xié)議(也就是說,它使用以 https:// 開頭的 URL,而不是 http://)連接服務器及服務器...

ClientCertificate

ClientCertificate 集合從 Web 瀏覽器發(fā)布請求中獲取驗證字段(由 X.509 標準指定)。

如果 Web 瀏覽器使用 SSL3.0/PCT1 協(xié)議(也就是說,它使用以 https:// 開頭的 URL,而不是 http://)連接服務器及服務器請求驗證,則瀏覽器將發(fā)送驗證字段。

如果沒有發(fā)送驗證,ClientCertificate 集合將返回 EMPTY。

必須先將 Web 服務器配置為要求客戶端驗證,然后才能使用 ClientCertificate 集合。

語法

Request.ClientCertificate( Key[SubField] ) 

參數(shù)

Key
指定要獲取的驗證字段名稱。客戶端驗證包括下列字段。
意義
Certificate按 ASN.1 格式的二進制流字符串,其中包括完整的驗證內容。
Flags一組標志,提供其他客戶端驗證信息?梢栽O置下面的標志:

ceCertPresent - 當前的客戶端驗證。

ceUnrecognizedIssuer - 該鏈上來自未知的發(fā)布者的最后一個驗證。

注意 要使用以上標志,必須在 ASP 頁中包含客戶端驗證包含文件。若您正在使用 VBScript,則應包含 cervbs.inc。這些文件安裝在 \Inetpub\ASPSamp\Samples 目錄下。

Issuer包含子字段值的列表的字符串,此列表包含驗證發(fā)布者的信息。若該值在無 SubField 項的情況下指定,則 ClientCertificate 集合返回一個以逗號分隔的子字段列表。例如,C=US, O=Verisign 等。
SerialNumber包含驗證的序列號的字符串,序列號以連字符 (-) 分隔的 16 進制 ASCII 碼表示。例如,04-67-F3-02。
Subject包含子字段值的列表的字符串,此列表包含有關驗證的主題信息。若該值在無 SubField 項的情況下指定,則 ClientCertificate 集合返回一個以逗號分隔的子字段列表。例如,C=US, O=Verisign 等。
ValidFrom指定驗證何時有效。此日期遵循 VBScript 格式并隨國家(地區(qū))設置而變化。例如,在美國可表示為 9/26/96 11:59:59 PM.
ValidUntil指定驗證何時到期。


SubField
可選參數(shù),用于按 Subject 或 Issuer 關鍵字檢索單獨的字段。此參數(shù)作為一個后綴添加到 Key 參數(shù)中。例如,IssuerO 或 SubjectCN。下表列出了一些通用的 SubField 值。
意義
C指定原國家(地區(qū))名。
CN指定公用用戶名。(此子字段僅同 Subject 關鍵字一起使用。)
GN指定給定的名稱。
I指定一組首字母。
L指定所在地。
O指定公司或組織名稱。
OU指定機構的名稱。
S指定州或省。
T指定此人或組織的頭銜。

與在上述列表中所列的值不同,SubField 的值可被 ASN.1 標識所識別。ASN.1 標識的格式是一串通過句點 (.) 分隔的一系列數(shù)。例如: 3.56.7886.34。

注釋

可以通過關鍵字用循環(huán)來遍歷 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%> 

下面的示例獲取發(fā)布客戶端驗證的公司的公用名。

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

下面的示例檢查客戶端驗證主題的組織名。

<% If (Request.ClientCertificate("Subject")="Msft")  Response.Write("Good Choice!")End if%> 

下面的示例顯示客戶端驗證何時到期。

This certification will expire on <%= Request.ClientCertificate("ValidUntil") %> 

下面的示例使用 Flags 關鍵字測試客戶端驗證的發(fā)布者是不是已知的。第一行的 include 命令使腳本可使用已命名標志 ceUnrecognizedIssuer。

<!--#include file="cervbs.inc" --><%If Request.ClientCertificate("Flags") and ceUnrecognizedIssuer then  Response.Write "Unrecognized issuer"End If%> 

應用于

Request 對象