我有一个应用程序(使用SharpSSH的C#程序),如果我尝试使用当前未登录的用户的凭据运行它,我会收到一条CryptographicException错误,说“keyset不存在”。
如果我使用当前登录用户的凭据运行应用程序,一切正常。
知道为什么会这样吗?
答案 0 :(得分:1)
所有其他条件相同(例如您有权访问凭据)我猜您需要的凭据存储在用户的配置单元/配置文件中。我不知道SharpSSH会使用哪个certificate store(或者你使用的是哪个SharpSSH [在codeplex上有一个,在sourceforge上有一个]。)
假设凭据与HKEYUser绑定,要修复,您需要使用LoadUserProfile加载用户的个人资料。这意味着您必须为用户提供安全令牌(即,您必须将其登录,但不必以交互方式登录)。或者您可以更改为与用户无关的证书存储区。