Я тестируя следующий код на моем компьютере:сертификата отсутствует из коллекции X509Store.Certificates
private static void Main(string[] args)
{
X509Store x509Store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
x509Store.Open(OpenFlags.ReadOnly);
foreach (var x509StoreCertificate in x509Store.Certificates)
{
Console.WriteLine(x509StoreCertificate.Thumbprint);
}
x509Store.Close();
Console.WriteLine("Finished.");
Console.ReadLine();
}
Когда я проанализировал список отпечатков пальцев, которые были показаны в консоли, я заметил, что есть который я импортировал сегодня, который не отображается в списке.
Это CERT я импортировал было сделано следующим образом:
- Открыть
MMC
и добавитьCertificates
оснастку. - Я открыл оснастку на
Computer account
уровне - В обоих
Personal
иTrusted Root Certification Authorities
я импортировал файл сертификата PFX-.
После выполнения вышеуказанного, я могу видеть сертификат в списке сертификатов для обеих областей, о которых я упоминал. На самом деле, когда я запускаю следующий Powershell скрипт:
cls
Set-Location Cert:\LocalMachine
dir -Recurse | where {$_.Thumbprint -ne $null -and $_.Thumbprint.ToLower() -eq "thumbprint omitted"}
Он находит два места на CERT, с Directory: Microsoft.PowerShell.Security\Certificate::LocalMachine\My
быть один из них.
Так что мне непонятно, почему консольное приложение C# не перечисляет этот сертификат в коллекции Certificates
.
Возможно, я только что пропустил что-то очевидное, но любая помощь будет оценена по достоинству.