明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

Asp Object 之:ClientCertificate

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

ClientCertificate

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

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

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

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

語法

Request.ClientCertificate( Key[SubField] ) 

參數(shù)

Key
指定要獲取的驗(yàn)證字段名稱?蛻舳蓑(yàn)證包括下列字段。
意義
Certificate按 ASN.1 格式的二進(jìn)制流字符串,其中包括完整的驗(yàn)證內(nèi)容。
Flags一組標(biāo)志,提供其他客戶端驗(yàn)證信息。可以設(shè)置下面的標(biāo)志:

ceCertPresent - 當(dāng)前的客戶端驗(yàn)證。

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

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

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


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

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

注釋

可以通過關(guān)鍵字用循環(huán)來遍歷 ClientCertificate 集合。下面的例子對此進(jìn)行演示。

<%For Each key in Request.ClientCertificate  Response.Write( key & ": " & Request.ClientCertificate(key) & "<BR>")Next%> 

示例

下面的示例使用 Subject 關(guān)鍵字測試客戶端驗(yàn)證是否存在。

<%If Len(Request.ClientCertificate("Subject")) = 0  Response.Write("No client certificate was presented")End if%> 

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

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

下面的示例檢查客戶端驗(yàn)證主題的組織名。

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

下面的示例顯示客戶端驗(yàn)證何時(shí)到期。

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

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

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

應(yīng)用于

Request 對象