我正在开发ASP.NET 4.0 Web应用程序,我想从X509Store中读取当前的用户证书。读取LocalMachine证书可以正常工作,但是如果我将StoreLocation设置为CurrentUser,它会给我一个空集合。
以下代码可以正常工作:
X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine); // StoreLocation.CurrentUser
store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
我已经检查了我的个人商店(通过certmgr.mmc),并且确定我具有证书。
我想念什么? (store.Certificates为空)
最佳答案
似乎无论您使用什么应用程序池标识,都无法通过Web应用程序访问“个人证书存储”。
这是有道理的,Web应用程序无法访问该位置。 :)
我的解决方案:
我已经开发了一个ActiveX控件,我认为它是访问商店的唯一方法。
(此外,Java Applet提供相同的功能)。
我通过JavaScript使用ActiveX控件来访问商店,并将该信息发送到服务器。