client|object
ClientCertificate
ClientCertificate 集合從 網頁瀏覽器發布請求中擷取驗證欄位(由 X.509 標準指定)。
如果 網頁瀏覽器使用 SSL3.0/PCT1 協議(也就是說,它使用以 https:// 開頭的 URL,而不是 http://)串連伺服器及伺服器請求驗證,則瀏覽器將發送驗證欄位。
如果沒有發送驗證,ClientCertificate 集合將返回 EMPTY。
必須先將 Web 服務器配置為要求用戶端驗證,然後才能使用 ClientCertificate 集合。
文法
Request.ClientCertificate( Key[SubField] )
參數
-
Key
-
指定要擷取的驗證欄位名稱。用戶端驗證封裝括下欄欄位。 值意義Certificate按 ASN.1 格式的二進位流字串,其中包括完整的驗證內容。Flags一組標誌,提供其他用戶端驗證資訊。可以設定下面的標誌:
ceCertPresent - 當前的用戶端驗證。
ceUnrecognizedIssuer - 該鏈上來自未知的發行者的最後一個驗證。
注意 要使用以上標誌,必須在 ASP 頁中包含用戶端驗證封裝含檔案。若您正在使用 VBScript,則應包含 cervbs.inc。這些檔案安裝在 \Inetpub\ASPSamp\Samples 目錄下。
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) & "
")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。
<%If Request.ClientCertificate("Flags") and ceUnrecognizedIssuer then Response.Write "Unrecognized issuer"End If%>
應用於
Request 對象