可以';t从X509Store读取CurrentUser证书

本文关键字:X509Store 读取 CurrentUser 证书 可以 | 更新日期: 2023-09-27 18:28:37

我正在开发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),我确信我有证书。

我错过了什么?(存储。证书为空)

可以';t从X509Store读取CurrentUser证书

无论使用何种应用程序池标识,您都无法通过web应用程序访问个人证书存储。

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

我的解决方案:

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

如果您的工作进程无法访问证书存储,可能只是帐户设置问题。尝试转到IIS配置,打开ApplicationPools,右键单击您的,选择Advanced,然后尝试将LoadUserProfile设置为TRUE。然后重新启动游泳池。它为我工作-加载时没有更多的例外。PFX与私钥。

我也遇到了类似的问题。解决方案是:

IIS管理员->[您的虚拟目录]->身份验证->匿名身份验证(选择然后单击"编辑…")并将其更改为使用"应用程序池标识"。

否则,它可能会作为通用的"IUSR"运行