C# 清除C中智能令牌的Pin缓存#

C# 清除C中智能令牌的Pin缓存#,c#,windows,smartcard,C#,Windows,Smartcard,我正在开发使用智能令牌进行签名和解密操作的C#应用程序(.Net Framework)。我希望每次访问令牌时都提供pin。我想清除pin缓存 我尝试使用CryptoAPI中的CryptoSetProvParam函数,但在某些令牌模型中失败 [DllImport("Advapi32.dll", SetLastError = true)] private static extern bool CryptSetProvParam(IntPtr hProv, uint dwParam

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

我尝试使用CryptoAPI中的CryptoSetProvParam函数,但在某些令牌模型中失败

[DllImport("Advapi32.dll", SetLastError = true)]
private static extern bool CryptSetProvParam(IntPtr hProv, uint dwParam, IntPtr pvData, uint dwFlags);
我还尝试在加密新一代API中使用函数,但根本不起作用。
有没有办法实现这一点?

要在NetCore分布式缓存中进行缓存,您可以查看以下Microsoft文档


您可以使用Redis来缓存和删除相应的令牌,请参阅这篇关于如何立即开始使用NetCore上的Redis的简短教程

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


谢谢你的回答,但这不是我想要的。我需要清除加密操作中使用的智能令牌的pin缓存如何从不同智能令牌模型的C#代码中执行此操作?每个CSP都使用自己的设置(存储在Windows注册表中),因此没有通用方法(我知道)。可以在每次操作后使用PKCS#11并调用方法c#u Logout,但这是依赖于驱动程序的方法。由于用户有意识地选择智能卡CSP(Manager)中的选项来存储其PIN,所以这应该不是一个大问题。