Citrix上缓存的智能卡密钥容器

时间:2017-09-17 20:32:19

标签: c# smartcard citrix xenapp

我正在尝试通过Citrix XenApp连接使用智能卡。如果证书传播服务从智能卡中取出证书后,个人证书存储区中有多个证书,我需要识别属于当前插入的智能卡的证书。我目前正在使用基于this question答案的解决方案,其中我检查了我可以通过CryptGetProvParam看到的容器的公钥,并将这些密钥与我列出的证书交叉引用。

我遇到的问题是,只有通过XenApp,通过CryptGetProvParam获取的容器列表始终是当前XenApp会话期间看到的第一个智能卡的容器列表。无论我切换卡多少次,容器列表都是一样的。有趣的是,在没有插入卡的情况下,容器列表将不会加载,并且证书传播仍会从插入的新智能卡中提取正确的证书。我的应用程序可能会被单个XenApp会话中的多个用户使用,他们在完成注销后删除智能卡,然后下一个用户插入其卡以登录并启动其工作流。这意味着,当我们获取容器列表以尝试选择用于登录的证书时,我们会得到属于第一张卡的列表,因此系统会尝试使用第一个用户的证书,即使该证书和/或卡不再存在。

到目前为止,我已经尝试了几个不同版本的Citrix Receiver,Citrix Server上似乎没有任何问题。此问题不会出现在XenDesktop,RDP,VM或基本计算机上;只有XenApp受到影响。该领域是否存在任何已知问题?

0 个答案:

没有答案