【问题标题】:Can't Get Current User Certificate From X.509 Store无法从 X.509 存储中获取当前用户证书
【发布时间】:2014-06-10 05:05:00
【问题描述】:

我正在开发 Asp.net 应用程序,我想在其中从 x509Store 读取当前用户证书...它在我的本地计算机上运行良好..当我在 IIS 上部署应用程序时...我无法选择当前用户我将用于应用程序身份验证的证书...

这是遵循本地系统正常工作的代码..

public  X509Certificate2 selectCert(StoreName store, StoreLocation Location ,  string windowTitle, string windowMsg)
    {

        X509Certificate2 certSelected = null;
        X509Store x509Store = new X509Store(store);
        x509Store.Open(OpenFlags.ReadWrite);

        X509Certificate2Collection col = x509Store.Certificates;
        X509Certificate2Collection sel = X509Certificate2UI.SelectFromCollection(col, windowTitle, windowMsg, X509SelectionFlag.SingleSelection);

        if (sel.Count > 0)
        {
            X509Certificate2Enumerator en = sel.GetEnumerator();
            en.MoveNext();
            certSelected = en.Current;
        }

        x509Store.Close();

        return certSelected;
    }

这里 x509Store.Certificates 返回当前用户证书的一些集合.. 但是当我在 ISS 中运行已部署的应用程序时。 x509Store.Certificates 在服务器上提供空集合...对于当前用户,我已经检查了我的个人商店(通过 certmgr.mmc),我确定我有证书...关键问题请解决...我无法理解..发生了什么...

谢谢

【问题讨论】:

  • 您在哪个用户下运行 IIS 以及您在哪里部署了证书(是同一用户)?
  • 我需要当前用户的所有浏览器证书...存储在 x509 证书存储中...在个人选项卡中...N 我在本地 iis 部署应用程序...具有相同的用户...
  • 正如 Gusman 在另一个答案中所解释的,您正在使用没有 CurrentUser 存储的帐户运行 IIS。但是,问问自己为什么需要那家商店。您可以将所有需要的证书放到 LocalMachine 存储中,并且 IIS 服务器可以访问它。

标签: c# asp.net ssl client-certificates x509certificate2


【解决方案1】:

您的 IIS 应用程序必须在 IIS 中内置的 ASP .net 帐户下运行,该帐户无权访问证书存储区。

解决方法之一是将用户更改为具有权限的其他用户,但这会导致安全问题。

更好但更复杂的方法是让服务以提升的权限执行,该服务接受来自本地计算机的传入 TCP/UDP/管道连接,检索证书并将它们传递出去,这样您就可以从您的asp.net 页面没有授予它提升的权限

【讨论】:

    【解决方案2】:

    如果您已将证书安装为 CurrentUser,则只有在您的用户名下运行的服务才能访问。 为了访问机器中所有用户名的证书,您必须将证书安装为 LocalMachine 并使用 LocalMachine 检索相同

    更多信息read

    【讨论】:

    • 我的应用程序托管在服务器上......如果我将使用本地机器,那么它会提供服务器证书......我需要每个用户都有我提供的客户端证书......只有访问应用程序
    猜你喜欢
    • 1970-01-01
    • 2017-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-16
    • 2012-07-22
    相关资源
    最近更新 更多