【问题标题】:Clear Pin Cache for Smart Token in C#在 C# 中清除智能令牌的 Pin 缓存
【发布时间】:2021-05-04 07:25:32
【问题描述】:

我正在开发使用智能令牌进行签名和解密操作的 C# 应用程序 (.Net Framework)。我希望每次访问令牌时都提供引脚。我想清除 pin 缓存。

我尝试使用 Crypto API 中的 CryptSetProvParam 函数,但使用某些令牌模型失败。

[DllImport("Advapi32.dll", SetLastError = true)]
private static extern bool CryptSetProvParam(IntPtr hProv, uint dwParam, IntPtr pvData, uint dwFlags);

我也尝试在 Cryptography Next Generation API 中使用函数,但它根本不起作用。 有没有办法做到这一点?

【问题讨论】:

    标签: c# windows smartcard


    【解决方案1】:

    在 Windows 上,智能卡使用 CSP(加密服务提供商)。某些智能卡的 CSP 具有存储密码的选项。因此,如果用户选择了该选项,则用户可能必须删除该选项。我附上了 Hypersecu ePass2003 令牌管理器的示例屏幕截图 -> 设置。

    【讨论】:

    • 如何通过 C# 代码为不同的智能令牌模型执行此操作?
    • 每个 CSP 都使用自己的设置(存储在 Windows 注册表中),因此没有通用方法(我知道)。可以在每次操作后使用 PKCS#11 并调用方法 c_Logout ,但这是依赖于驱动程序的方法。由于用户有意识地选择 Smartcard CSP (Manager) 中的选项来存储他的 PIN,应该不是什么大问题。
    【解决方案2】:

    要在 NetCore 中缓存 - 分布式缓存,您可以查看此 Microsoft 文档Distributed Caching NetCore

    您可以使用 Redis 来缓存和删除相应的令牌,请参阅此简短教程,了解如何立即开始在 NET Core 上使用 Redis。 how to get started with Redis on NET Core in no time.

    【讨论】:

    • 感谢您的回答,但这不是我要寻找的。我需要清除密码操作中使用的智能令牌的 pin 缓存
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-15
    • 1970-01-01
    • 2022-10-25
    • 2015-06-20
    • 2010-11-11
    相关资源
    最近更新 更多