以下代码显示以下错误: System.Security.Cryptography.CryptographicException“句柄无效”
CspParameters CSPParam = new System.Security.Cryptography.CspParameters(13, null, null);
CSPParam.Flags = CspProviderFlags.UseMachineKeyStore;
CSPParam.KeyContainerName = "MyKeys";
System.Security.Cryptography.DSACryptoServiceProvider r = new System.Security.Cryptography.DSACryptoServiceProvider(CSPParam); //Error occurs here
此代码一直没有问题,然后开始抛出此错误。我想不出任何与此有关的改变。有没有人见过这个错误?什么尝试的想法?
答案 0 :(得分:0)
确保您具有执行此操作的适当权限。
答案 1 :(得分:0)
我不记得CAPI幕后发生的一切,但如果我记得它可能会相当痛苦。通过使用null参数,您可能会得到一些名为(我认为)默认密钥容器的东西。在运行代码之前,我认为您不能指望默认密钥容器不存在,并且如果它存在,那么您会收到错误。您可以阅读有关CryptAcquireContext函数和各种_KEYSET_THIS_THAT标志的所有信息,以了解如何在非托管代码中执行此操作。如果有一个.NET包装器那么恐怖,我不知道。