无法从X509Store读取CurrentUser证书

Tal*_*nov 8 c# asp.net x509certificate2 x509certificate

我正在开发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);
Run Code Online (Sandbox Code Playgroud)

我已经检查了我的个人商店(通过certmgr.mmc),我确信我有证书.

我错过了什么?(store.Certificates为空)

Tal*_*nov 2

无论您使用什么应用程序池身份,您似乎都无法通过 Web 应用程序访问个人证书存储。

这是有道理的,Web 应用程序无法访问该位置。:)

我的解决方案:

我开发了一个 ActiveX 控件,我认为它是访问商店的唯一方法。(此外,Java Applet 也提供相同的功能)。我通过 JavaScript 使用 ActiveX 控件来访问 Store,并将该信息发送到服务器。