我有一个测试用例,它使用密钥库的全名,密钥库密码和Exportable标志创建一个X509Certificate2实例。参见下面的代码。
if (keystoreFile.Exists)
{
CertificateStore.Instance.ClientCertificate = new X509Certificate2(KeystoreFile.FullName, KeystorePassword, X509KeyStorageFlags.Exportable);
}
运行测试用例时,出现消息CryptographicException:
找不到请求的对象
看一下堆栈跟踪,错误发生在上面的代码行上。作为测试用例的参数,我使用FileInfo类的实例来引用我的密钥库的本地文件路径,密钥库密码以及一些其他信息。
activationClient = new ActivationClient(
new ServiceProvider(),
"99999999",
new FileInfo(@"C:\Test\Keystore\myKeystore.jks"),
"keystorePassword"
);
参数对我来说看起来不错,但是我不确定在读取文件路径时是否遇到问题。密钥库包含根证书,并且确认密码正确。
什么可能导致此错误发生?我假设它很难找到的“对象”是密钥库本身或其中的证书。 让我知道是否需要更多信息。