程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 在ASP/ASP.NET 中處理客戶端數字證書

在ASP/ASP.NET 中處理客戶端數字證書

編輯:.NET實例教程

客戶端數字證書與基本身份驗證(Basic)、域服務器的摘要式身份驗證、集成 Windows 身份認證或自定義的 Form 認證等方式相比,雖然部署和管理方面稍微復雜一些,但安全性也更好一些,應用上也較為靈活。

在 ASP 和 ASP.Net 中處理和識別客戶端數字證書是非常容易的,代碼如下:

ASP (VBScript)語法:

Dim subject
subject=Request.ServerVariables("CERT_SUBJECT")

subject=Request.ClIEntCertifate("Subject") '--適用於 Subject 沒有中文的證書

ASP.Net(C#) 語法:

string subject ;
HttpClientCertificate hcc = Request.ClIEntCertificate;
if(hcc.IsValid) = hcc.Subject;

得到的 subject 字符串是以逗號分隔的子字段列表。例如,C=CN,O=BOC,CN=moslem ,然後將字符串分隔處理,取最後的 CN 值(可能不止一個 CN),這個值是用戶的 Common Name ,即“常規名稱”,一般就是用戶的姓名或 ID。

拿到數字證書中的 CN 後,就可以做進一步的處理了,如對用戶進行授權等。我認為比較有效的一種做法是在客戶端同時啟用數字證書和 Form 認證,可以通過比較 CN 和 Form 中輸入的用戶名的值是否匹配來做到多因子身份認證。

相對來說,ASP.Net 中提供了專門的處理客戶端數字證書的 HttpClIEntCertificate 類,因而在程序中處理也更為方便一些。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved