Я пытался искать сертификаты в местном магазине по серийному номеру со следующим кодом:
X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
var certSerial = "18 99 ac c2 1e ed 69 ae"; //copied from Windows Certificates view tool
certSerial = certSerial.Replace(" ", string.Empty).ToUpper();
var foundCerts = store.Certificates.Find(
X509FindType.FindBySerialNumber,
certSerial ,
true);
... и ничего не нашел. Однако затем я посмотрел на это хранилище в режиме отладки и скопировал серийный номер сертификата, который я хотел найти - 1899ACC21EED69AE, и изменил переменную certSerial
на:
var certSerial = "1899ACC21EED69AE";
возвращает мне правильный сертификат.
В Debug обе переменные выглядят одинаково - что я должен сделать, чтобы первый код работал? Я просто не понимаю, почему так себя ведет.