C# 我应该使用哪一种:Pkcs11interop中的会话vs_会话

C# 我应该使用哪一种:Pkcs11interop中的会话vs_会话,c#,pkcs#11,hsm,pkcs11interop,C#,Pkcs#11,Hsm,Pkcs11interop,我面临着与此线程所有者相同的问题: 在这里,您提供了一个解决方案,并给出了 我有一点困惑,在这门课上,我看到了很多你正在使用的例子 using (Session session = _slot.OpenSession(true)) 声明。但是在它内部,您使用的是预定义变量\u session,而不是此session。 但是在签名方法中,您使用的是此会话,而不是\u会话。 请提供帮助,在这种情况下,我应该使用会话和\u会话感谢您发现这一点。应始终首选局部变量会话。字段\u session应仅用

我面临着与此线程所有者相同的问题:

在这里,您提供了一个解决方案,并给出了

我有一点困惑,在这门课上,我看到了很多你正在使用的例子

using (Session session = _slot.OpenSession(true))
声明。但是在它内部,您使用的是预定义变量
\u session
,而不是此
session
。 但是在
签名
方法中,您使用的是此
会话
,而不是
\u会话

请提供帮助,在这种情况下,我应该使用
会话
\u会话

感谢您发现这一点。应始终首选局部变量
会话
。字段
\u session
应仅用于保持登录状态。我已经修复了commit and中的代码。

感谢@jariq为您提供的快速解决方案您始终是救世主。如果您能提供帮助,我还有一个问题。在我的类中,我总是在构造函数中登录到HSM,并在dispose方法中注销。然而,若在这两者之间出现一些异常,它总是会抛出用户已经登录到HSM的错误。我的应用程序是一个多线程应用程序。请帮助我应该做什么。在catch块中,我已经编写了session.Dispose(),我应该添加session.Logout()。或者是否有任何方法可以告诉我用户是否已经登录。然后我可以检查,如果他没有登录,那么只有我会调用登录方法。谢谢你Advance@Kumar您可以使用
session.GetSessionInfo().State
检查它是公共会话还是经过身份验证的会话。非常感谢