3

我正在通过 Windows 证书存储从 c# 访问智能卡。这适用于许多系统。然而,在一个系统上,它没有。智能卡证书不会添加到个人证书中。

我们需要它在证书存储中才能从 C# 访问它,如下所示:

X509Store store = new X509Store(StoreName.My,
    StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
X509Certificate2Collection certs =
    store.Certificates.Find(X509FindType.FindByIssuerName,
    issuerName, false);

系统详情:

  • 操作系统:Windows Server 2003 R2 x64 SP2
  • 使用的 CSP 是SafeSign Identity Client v3.0.11
  • 该系统通过 Citrix ICA 连接、Citrix Presentation Server 4.5 访问。

什么有效:

  • 通过智能卡读卡器( OMNIKEY 3121)提供的诊断工具访问卡
  • 在 Internet Explorer 7 中查看个人证书(工具 > Internet 选项 > 内容 > 证书
  • 基本上我们用这张卡尝试过的所有其他事情,除了......

什么不起作用:

  • 个人证书不会复制到个人证书存储区(可以使用 certmgr.msc 检查)

我的猜测是通过 Citrix 转发智能卡可以正常工作,因为我们几乎可以通过所有方式访问它,但 CSP 无法正常工作。然而,获得对 CSP 的支持并不容易,因此提出了这个问题。我觉得奇怪的是证书可以通过 IE7 访问,这表明它们在某种 Windows 商店中可用。

欢迎任何关于在哪里进一步研究的想法。是否有像 IE 一样访问智能卡证书的不同方式?

4

1 回答 1

0

导致此问题的原因是 SafeSign 身份客户端与 64 位 Windows 不兼容。官方支持将在以后的版本中添加,有人告诉我 2009 年秋季。

于 2009-05-28T09:29:39.920 回答