Я не понимаю, но это то, что происходит ...
У меня есть вспомогательный метод, который я вызываю:
var cert = X509CertificateHelper.LoadCertificate(StoreName.My, StoreLocation.LocalMachine, "thumbprintgoeshere");
Когда я вызываю это, cert
успешно заселен и даже HasPrivateKey
верно.Однако, если я затем сделаю следующее:
var cert2 = new X509Certificate2(cert.RawData);
, тогда для полученного сертификата cert2, который также является действительным сертификатом, для HasPrivateKey
установлено значение false.Похоже, что свойство RawData
«удаляет» закрытый ключ (и да, его можно экспортировать - у меня нет проблем с созданием .pfx с закрытым ключом и импортом его в другую систему и воспроизведением этого поведения).
Теперь, когда я обнаружил все это, мое решение больше не заключается в жестком кодировании RawData, а вместо этого в том, чтобы фактически загрузить сертификат из хранилища сертификатов - именно то, чего я пытался избежать.Если у кого-то есть идея получше, пожалуйста, возложите ее на меня.Но до тех пор я называю это неудачей, и это мой конечный результат.: - (