And*_*per 5 c# exception certificate
我有一个控制台应用程序,它从字节数组中加载X509证书,如下所示:
var cert = new X509Certificate2(certificateContent, // byte[]
password, // string
X509KeyStorageFlags.PersistKeySet);
Run Code Online (Sandbox Code Playgroud)
certificateContent是byte[]表示pfx文件的内容。该代码对我测试过的许多证书都适用。但是,我正在测试一个证书,该证书导致此行抛出一条CryptographicException错误消息“指定的网络密码不正确。”,即使提供的密码正确无误。
奇怪的是,我可以在LinqPad中使用相同的代码从具有相同密码的相同pfx文件创建证书,并且可以正常工作。
我已经在调试器的控制台应用程序中检查了呼叫站点,并验证了是否传递了正确的值。
是什么导致该构造函数在控制台应用程序中抛出此异常,但在使用相同数据的LinqPad中却未抛出此异常,并且对于其他证书在两个地方均能正常工作?
更多细节
证书存储在Base64的数据库中。Console应用程序从数据库读取证书,将其从Base64转换为byte [],然后尝试X509Certificate2如上所述创建对象。
我一直在测试三个证书:
证书1和2在控制台应用程序和LinqPad中均按预期工作。
证书3在LinqPad中可以很好地加载,但是如果我尝试在控制台应用程序中使用它,则会生成上面的错误。
证书2和3之间有两个重要区别。
这些差异之一是否会导致“指定的网络密码不正确”错误?为何所有3个证书在LinqPad中都能正常工作,而在Console应用程序中只有1个抛出错误?
| 归档时间: |
|
| 查看次数: |
8033 次 |
| 最近记录: |