一.服務環境變量
Request.ServerVariables("Url")
返回服務器地址
Request.ServerVariables("Path_Info")
客戶端提供的路徑信息
Request.ServerVariables("Appl_Physical_Path")
與應用程序元數據庫路徑相應的物理路徑
Request.ServerVariables("Path_Translated")
通過由虛擬至物理的映射后得到的路徑
Request.ServerVariables("Script_Name")
執行腳本的名稱
Request.ServerVariables("Query_String")
查詢字符串內容
Request.ServerVariables("Http_Referer")
請求的字符串內容
Request.ServerVariables("Server_Port")
接受請求的服務器端口號
Request.ServerVariables("Remote_Addr")
發出請求的遠程主機的IP地址
Request.ServerVariables("Remote_Host")
發出請求的遠程主機名稱
Request.ServerVariables("Local_Addr")
返回接受請求的服務器地址
Request.ServerVariables("Http_Host")
返回服務器地址
Request.ServerVariables("Server_Name")
服務器的主機名、DNS地址或IP地址
Request.ServerVariables("Request_Method")
提出請求的方法比如GET、HEAD、POST等等
Request.ServerVariables("Server_Port_Secure")
如果接受請求的服務器端口為安全端口時,則為1,否則為0
Request.ServerVariables("Server_Protocol")
服務器使用的協議的名稱和版本
Request.ServerVariables("Server_Software")
應答請求并運行網關的服務器軟件的名稱和版本
Request.ServerVariables("All_Http")
客戶端發送的所有HTTP標頭,前綴HTTP_
Request.ServerVariables("All_Raw")
客戶端發送的所有HTTP標頭,其結果和客戶端發送時一樣,沒有前綴HTTP_
Request.ServerVariables("Appl_MD_Path")
應用程序的元數據庫路徑
Request.ServerVariables("Content_Length")
客戶端發出內容的長度
Request.ServerVariables("Https")
如果請求穿過安全通道(SSL),則返回ON如果請求來自非安全通道,則返回OFF
Request.ServerVariables("Instance_ID")
IIS實例的ID號
Request.ServerVariables("Instance_Meta_Path")
響應請求的IIS實例的元數據庫路徑
Request.ServerVariables("Http_Accept_Encoding")
返回內容如:gzip,deflate
Request.ServerVariables("Http_Accept_Language")
返回內容如:en-us
Request.ServerVariables("Http_Connection")
返回內容:Keep-Alive
Request.ServerVariables("Http_Cookie")
返回內容如:nVisiT%
Request.ServerVariables("Http_User_Agent")
返回內容:Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1)
Request.ServerVariables("Https_Keysize")
安全套接字層連接關鍵字的位數,如128
Request.ServerVariables("Https_Secretkeysize")
服務器驗證私人關鍵字的位數如1024
Request.ServerVariables("Https_Server_Issuer")
服務器證書的發行者字段
Request.ServerVariables("Https_Server_Subject")
服務器證書的主題字段
Request.ServerVariables("Auth_Password")
當使用基本驗證模式時,客戶在密碼對話框中輸入的密碼
Request.ServerVariables("Auth_Type")
是用戶訪問受保護的腳本時,服務器用於檢驗用戶的驗證方法
Request.ServerVariables("Auth_User")
代證的用戶名
Request.ServerVariables("Cert_Cookie")
唯一的客戶證書ID號
Request.ServerVariables("Cert_Flag")
客戶證書標志,如有客戶端證書,則bit0為0如果客戶端證書驗證無效,bit1被設置為1
Request.ServerVariables("Cert_Issuer")
用戶證書中的發行者字段
Request.ServerVariables("Cert_Keysize")
安全套接字層連接關鍵字的位數,如128
Request.ServerVariables("Cert_Secretkeysize")
服務器驗證私人關鍵字的位數如1024
Request.ServerVariables("Cert_Serialnumber")
客戶證書的序列號字段
Request.ServerVariables("Cert_Server_Issuer")
服務器證書的發行者字段
Request.ServerVariables("Cert_Server_Subject")
服務器證書的主題字段
Request.ServerVariables("Cert_Subject")
客戶端證書的主題字段
Request.ServerVariables("Content_Type")
客戶發送的form內容或HTTPPUT的數據類型
--------------------------------------------------------------------------------------
二.ASP獲取客戶端證書信息
1、環境要求
服務器端IIS并配置安全站點。
2、讀取數字證書(方法一)
數據集合:Request.ClientCertificate(key[SubField])
所有客戶證書的信息的集合。對于Key,該集合具有如下的關鍵字:
Subject 證書持有者的主題,數據格式以英文逗號分隔。(不建議使用)
Issuer 證書的發行頒發者主題,數據格式以英文逗號分隔。(不建議使用)
VadidFrom 證書發行的日期,證書生效日期。
ValidUntil 該證書不再有效的時間。
SerialNumber 證書的序列號。
Certificate 包含整個證書內容的二進制流,使用ASN.1格式。
對于SubField,Subject和Issuer關鍵字可以具有如下的子域后綴:(比如:SubjectOU或IssuerL)
C 國家。 S 州(或省)。
O 公司或組織名稱。 T 個人或公司的標題。
OU 組織單元。 GN 給定名稱。
CN 用戶的常規名稱。 I 初始。
L 地區。
當文件cervbs.inc(VBScript使用)或cerjavas.inc(Jscript使用)通過使用#i nclude導向包含在你的Active Server Page里時,下面兩個標志可以使用:
ceCertPresent 指明客戶證書是否存在,其值為TRUE或FALSE。
ceUnrecongnizedIssure 指明在該鏈表中的最后的證書的發行者是否未知,其值為TRUE或FALSE。
3、讀取數字證書(方法二)
數據集合:Request.ServerVaribles(Server Environment Variable)
環境變量的集合,讀取HTTP頭。可以通過使用HTTP_前綴來讀取任何頭信息。比如,HTTP_USER_AGENT接受客戶代理HTTP頭(瀏覽器類型)。此外,可以使用下表所示的變量獲得數字證書相關信息。
CERT_COOKIE 唯一的客戶證書ID號。
CERT_FLAG 客戶證書標志,如有客戶端證書,則bit0為0。如果客戶端證書驗證無效,bit1被設置為1。
CERT_ISSUER 用戶證書中的頒發者字段。
CERT_KEYSIZE 安全套接字層連接關鍵字的位數,如128。
CERT_SECRETKEYSIZE 服務器驗證私人關鍵字的位數。如1024。
CERT_SERIALNUMBER 客戶證書的序列號字段。
CERT_SUBJECT 客戶端證書的主題字段。
CERT_SERVER_ISSUER 服務器證書的發行者字段
CERT_SERVER_SUBJECT 服務器證書的主題字段。
HTTPS 如果請求穿過安全通道(SSL),則返回ON。如果請求來自非安全通道,則返回OFF。
HTTPS_KEYSIZE 安全套接字層連接關鍵字的位數,如128。
HTTPS_SECRETKEYSIZE 服務器驗證私人關鍵字的位數。如1024。
HTTPS_SERVER_ISSUER 服務器證書的發行者字段。
HTTPS_SERVER_SUBJECT 服務器證書的主題字段。
4、補充說明
2中提到的通過Subject和Issuer所獲得的相關主題信息在包含中文的情況下是亂碼;通過Request.ServerVaribles數據集合獲得證書持有者的主題信息和證書頒發機構的主題信息沒有任何問題。
asp的代碼:
<%
Dim SerialNumber
Dim ValidFrom
Dim ValidUntil
Dim UniqueID
Dim Flags
Dim UserName
SerialNumber =Request.ClientCertificate("SerialNumber")
ValidFrom =Request.ClientCertificate("ValidFrom")
ValidUntil =Request.ClientCertificate("ValidUntil")
UniqueID = Request.ClientCertificate("Certificate")
Flags = Request.ClientCertificate("Flags")
UserName = Request.ClientCertificate("Subject")
//Response.Write "<p>證書用戶:"& UserName &"</p>"
Response.Write "<p>證書序列號:"& SerialNumber &"</p>"
Response.Write "<p>有效期起始時間:"& ValidFrom &"</p>"
Response.Write "<p>有效期終止時間:"& ValidUntil &"</p>"
Response.Write "<p>Flags:"& Flags &"</p>"
//Response.BinaryWrite UniqueID
%>
該文章在 2011/1/27 22:32:31 編輯過