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