2017-06-29 6 views
1

Je suis confronté à la même question que le propriétaire de ce fil: Threadsafe usage of PKCS11Interop library in C#Lequel dois-je utiliser: Session vs _session dans Pkcs11interop

Ici, vous avez fourni une solution et donné un lien de https://github.com/jariq/Pkcs11Interop.PDF/blob/1.3.0/src/Pkcs11Interop.PDF/Pkcs11RsaSignature.cs

I avoir une petite confusion, dans cette classe, j'ai vu de nombreuses occurrences où vous utilisez

using (Session session = _slot.OpenSession(true)) 

déclaration. Cependant à l'intérieur, vous utilisez la variable prédéfinie _session, vous n'utilisez pas cette session. Mais dans la méthode Sign vous utilisez cette session au lieu de _session. S'il vous plaît aider, dans quels cas je devrais utiliser session et _session.

Répondre

1

Merci d'avoir remarqué cela. La variable locale session devrait toujours être préférée. Le champ _session doit être utilisé uniquement pour conserver l'état de connexion. J'ai corrigé le code dans le commit 179003b et fixed class is available in master branch.

+0

Merci @jariq pour votre résolution rapide vous êtes toujours un sauveur. – Kumar

+0

J'ai un autre problème si vous pouvez aider. Dans ma classe, je me connecte toujours à HSM dans le constructeur et je me déconnecte dans la méthode disposer. Toutefois, si une exception survient entre les deux, l'erreur de lancement de l'utilisateur est déjà établie dans HSM. Mon application est une application multi-thread. S'il vous plaît aider ce que je devrais faire. – Kumar

+0

Dans le bloc catch j'ai écrit session.Dispose() devrais-je ajouter session.Logout(). Ou est-il une méthode qui permet de me dire si l'utilisateur est déjà connecté. Puis je peux vérifier et s'il n'est pas connecté alors seulement je vais appeler la méthode de connexion. Merci à l'avance – Kumar