我正在使用智能卡编写一个用于加密目的的小程序,但我的迷你驱动程序有问题。当我启动程序时,我可以看到卡(出现选择智能卡的弹出对话框)但我无法使用它,因为以下情况:
A smart card was detected but is not the one required for the current operation. The smart card you are using may be missing required driver software or a required certificate.
我使用的 C# 代码非常简单,如下所示:
CspParameters csp = new CspParameters(
1,
"Microsoft Base Smart Card Crypto Provider",
"my_container"
);
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(csp);
请注意,我有另一个应用程序(金雅拓微型驱动程序管理器)可以识别此微型驱动程序,因此问题不存在。
提前致谢
更新
为了让 CSP 识别智能卡,您需要告诉它使用默认密钥容器。只需在创建 RSACryptoServiceProvider 之前添加下一行:
csp.Flags = CspProviderFlags.UseDefaultKeyContainer;