我正在創建Web應用程序,需要客戶端證書進行驗證。用戶必須通過其私鑰簽署一些文本並將其發送到服務器後。當收到數據時,我需要使用用戶打開的密鑰對已存儲在「其他人」證書存儲區中的服務器進行解密。此外,我需要檢查此用戶的證書在「不可信任的商店」中。這是我的C#代碼。Windows 2008 R2從IIS訪問證書存儲的權限
X509Store store = new X509Store(StoreName.My);
store.Open(OpenFlags.ReadOnly);
int Count = store.Certificates.Count;
foreach (X509Certificate2 mCert in store.Certificates)
{
ClientName2 = mCert.Subject;
}
store.Close();
但是,我運行它後,沒有在個人商店發現證書。但是我在certmgr.msc上看到了tham。其他商店也有類似的情況 - 有些證書可以訪問,有些則不可以。 我認爲ApplicationPoolIdentity的windows 2008 r2服務器權限不允許獲取公共用戶的證書。但我可能是錯的... 你能告訴我如何檢查iis的存儲訪問許可嗎?或者,也許我需要使用其他方法?
2013年2月24日(編輯): 是的,似乎這個問題是由於IIS的權限。如果我用相同的代碼運行控制檯應用程序,一切正常。每個人都知道如何在Windows 2008 R2上爲證書商店設置閱讀權限?