我想使用.NET Api获取SmartCard上的证书列表。我知道智能卡上的证书已加载到个人存储中。但是,我想编写一个在用户登录之前运行的程序(我在Windows登录界面上添加了按钮来打开我的程序)。由于用户未登录,因此智能卡上的证书不会加载到个人存储中。这就是为什么我不能在这个问题How to read credentials from a SmartCard in c#中使用解决方案的原因。我需要编写代码以从SmartCard获取所有证书,而无需从Personal Store获取。
有人可以帮我吗?
非常感谢! 海
答案 0 :(得分:1)
经过大量研究,我找到了解决方案here。
答案 1 :(得分:0)
首先,您可以在某些用户的凭据下运行服务(您通常在运行服务的每个系统上的MMC中指定服务参数中的凭据),然后将证书从智能卡映射到Windows证书存储取决于在司机。即您需要验证此方案是否适用于您的智能卡读卡器。
接下来,如果您的智能卡读卡器支持PKCS#11接口(即供应商提供了PKCS#11驱动程序DLL),那么您可以通过PKCS#11 API访问智能卡内容。
PKCS11 API是一组非托管DLL函数,可以通过P / Invoke或某些第三方库从C#中使用。