В моем приложении мне нужно найти сертификаты в местном магазине, которые соответствуют имени определенного эмитента.
Итак, что я делал раньше было:
LocalStore.Certificates.Find(X509FindType.FindByIssuerName, "My Common Name", True)
Но так как новый сервер сертификатов был установлен и использует активную директорию, поле «Эмитент» моих сертификатов имеет дополнительные атрибуты (значения DC).
Полная строка выглядит так:
"CN=My Common Name, DC=MyCompanyDomain, DC=local"
Это не позволит мне использовать метод Find, как раньше, и любая комбинация значений CN, DC для меня не сработала.
Это то, что я пробовал в ImmediateWindow:
?LocalStore.Certificates.Item(0).IssuerName
{System.Security.Cryptography.X509Certificates.X500DistinguishedName}
Name: "CN=My Common Name, DC=MyCompanyDomain, DC=local"
Oid: {System.Security.Cryptography.Oid}
RawData: {Length=85}
m_distinguishedName: "CN=My Common Name, DC=MyCompanyDomain, DC=local"
m_oid: {System.Security.Cryptography.Oid}
m_rawData: {Length=85}
?LocalStore.Certificates.Find(X509FindType.FindBySubjectName, "My Common Name", True).Count
0
?LocalStore.Certificates.Find(X509FindType.FindByIssuerName, "My Common", True).Count
0
?LocalStore.Certificates.Find(X509FindType.FindByIssuerDistinguishedName, "My Common Name", True).Count
0
?LocalStore.Certificates.Find(X509FindType.FindByIssuerDistinguishedName, "My", True).Count
0