下面的代码显示以下错误:“System.Security.Cryptography.CryptographicException handle is invalid”
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这段代码一直没有问题,然后它开始抛出这个错误。我想不出任何与此相关的我所做的更改。nayone看到这个错误了吗?有什么想法可以尝试一下吗?
发布于 2010-06-17 10:02:12
我不记得CAPI的幕后发生的一切,但如果我回忆起来的话,那可能是相当痛苦的。通过使用空参数,您可能会得到一些称为(我认为)默认密钥容器的东西。我认为在运行代码之前,您不能指望默认密钥容器不存在,如果它存在,您可能会得到一个错误。您可以阅读有关CryptAcquireContext函数和各种_KEYSET_THIS_THAT标志的所有信息,以了解如何在非托管代码中执行此操作。我不知道是否有一个.NET包装器围绕着这个可怕的东西。
发布于 2010-06-17 05:58:45
请确保您具有执行此操作的适当权限。
information
https://stackoverflow.com/questions/3057458
复制相似问题