Asp Object 之:ClientCertificate
發(fā)表時(shí)間:2024-02-03 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]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 對象