Как найти в магазине нужный мне сертификат?

Для одного из моих приложений я разрабатываю TeleCashAPI (интернет-платежный шлюз). Мне нужно отправлять клиентский сертификат (p12) при каждом вызове.

До сих пор я загружал сертификат клиента через файловую систему.

public void AddCertificate(X509Certificate certificate)
{
    WebRequest.ClientCertificates.Add(certificate);
}

Теперь мой клиент хочет, чтобы он был более общим. Он должен быть установлен на клиентской машине (которая разговаривает с этим API). Я все еще знаю, что такое пароль, но я не знаю сертификат.

Как я могу получить Сертификат?

Из этого ответа я вижу как я могу получить весь список:

X509Store store = new X509Store("My");

store.Open(OpenFlags.ReadOnly);

foreach (X509Certificate2 mCert in store.Certificates){
    //TODO's
}

Но как найти именно тот сертификат, который мне нужен? Это вообще возможно?

Я действительно новичок в этой теме.


Чтобы быть немного более ясным:

Сертификат устанавливается двойным кликом. Я не могу контролировать этот процесс. Моя задача, найти сертификат, который для TeleCash.


person Christian Gollhardt    schedule 08.09.2015    source источник


Ответы (1)


Чтобы узнать хэш сертификата - дважды щелкните сертификат -> сведения -> отпечаток пальца.

foreach (X509Certificate2 mCert in store.Certificates)
{
    if(mCert.Thumbprint.ToLower()=="Your Certificat hash")
    {
        //TODO
    }
}
person Narek Arzumanyan    schedule 08.09.2015
comment
Как получить хэш сертификата? Я только сейчас понял, что кто-то установил сертификат, но не контролирует, как он установлен. Я только вот, это должен быть сертификат, который подписан на TeleCash. - person Christian Gollhardt; 08.09.2015
comment
чтобы узнать хэш сертификата - дважды щелкните сертификат -> детали -> отпечаток - person Narek Arzumanyan; 08.09.2015
comment
Ах хорошо, большое спасибо. Я думаю, что это должно быть коммуникабельным. - person Christian Gollhardt; 08.09.2015