我正在嘗試開發ASP.Net Web應用程序來接受智能卡身份驗證。我已經創建了Web應用程序,並將它部署在IIS中。根證書安裝在由CA授權的IIS計算機可信根目錄中。對於該Web應用程序,我添加了服務器證書,設置了要求SSL並將其設置爲接受證書。 當客戶端訪問該Web應用程序時,它會提示客戶端證書,chrome會提示客戶端證書,將智能卡插入客戶端計算機,並且當PIN被詢問時,用戶輸入有效的PIN碼,並且我能夠獲得網絡應用程序。直到這一切都按預期工作,但此時我想讀取客戶端證書並希望使用證書鏈驗證該客戶端。此外,基於客戶端證書,我想獲取該用戶的角色。每次我嘗試閱讀客戶端證書時,我都無法獲得證書。下面是代碼讀取智能卡證書:我們可以在客戶端服務器架構中使用智能卡身份驗證嗎?
`
X509Store store = null;
store = new X509Store(StoreName.Root);
store.Open(OpenFlags.ReadOnly);
var certsAuthEnc = store.Certificates.Find(X509FindType.FindByKeyUsage, (int)CertificateType.DigitalSignature, false);
`
這裏,store.Certificates.Count
即將爲0
請幫幫忙,我怎麼能閱讀客戶端證書?
感謝您的幫助,爲什麼我指的是根位置,我的登錄窗口位於服務器端,位於我的IIS服務器上,證書安裝在根位置。 基本上,我所看到的是,在我的ASP .Net網絡應用程序中,當PIN被驗證時,我應該得到該數字簽名數據以驗證下一步如果用戶在當前時間戳中有效等。 我怎樣才能得到當用戶輸入PIN碼時數字簽名的數據? –
根存儲只是一個自簽名根證書列表,您認爲「本地計算機」範圍不是「根存儲」。但是,正如我所說的,您不希望查看您希望驗證客戶端呈現的鏈的信任錨的列表。 – rmhrisk