У меня есть тестовый сценарий, который создает экземпляр X509Certificate2, используя полное имя хранилища ключей, пароль хранилища ключей и флаг Exportable. Смотрите код ниже.
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"
);
Параметры выглядят нормально для меня, но я не уверен, что у него проблемы с чтением пути к файлу. Хранилище ключей содержит корневой сертификат, и пароль подтвержден как правильный.
Что может вызвать эту ошибку? Я предполагаю, что «объект», который он не может найти, - это само хранилище ключей или сертификат в нем.
Дайте мне знать, если вам нужна дополнительная информация.