我有一个 .p12
证书文件,我这样创建我的证书:
var certificate = new X509Certificate2(certFileLocation, "mySecret", X509KeyStorageFlags.Exportable);
当 certFileLocation
在我的桌面上并且我提供了绝对路径时,代码可以正常工作。但是,当我将 .p12 文件的全部内容放入我的解决方案中的一个新文件并将文件的 Copy to Output Directory
属性设置为 “Copy if newer”我收到一个 CryptographicException
异常:
Cannot find the requested object
我也每次都检查文件是否就位。这两种情况有什么区别,为什么我不能用后一种方法读取文件?
最佳答案
我遇到了类似的问题。它适用于固定文件,但不适用于与我的单元测试相关的文件。这太令人费解了,以至于我终于查看了这些文件并比较了它们的二进制文件。他们在哪里不相同。它们以字符串形式读取和写入,这导致它们由于 unicode 解释而略有不同。当我自己(从资源流)将它们复制为二进制文件 (byte[]) 时,一切又恢复正常了。我希望这也能解决您的问题。
关于c# - "CryptographicException: Cannot find the requested object"证书文件存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32715811/