2013-08-29 4 views
1

Я пишу код в своем веб-приложении, которому необходимо перечислить и найти конкретный сертификат, установленный на веб-роли. Вот мой кодСписок сертификатов пуст в WebRole

// using System.Security.Cryptography.X509Certificates; 

var store = new X509Store() ; 
store.Open(OpenFlags.ReadOnly); 
LoggingService.Info(String.Format(
    "{0} Certificate(s) are found in store",store.Certificates.Count)); 
for(int index=0;index<store.Certificates.Count;index++) 
{ 
    LoggingService.Info(String.Format(
     "Subject:{0}, Thumbprint:{1}",store.Certificates[index].Subject, 
     store.Certificates[index].Thumbprint)); 
} 
_Certificate = store.Certificates.Find(
    X509FindType.FindByThumbprint, this.CertificateThumbprint, false)[0]; 

Теперь проблема, даже при том, что сертификат добавляется в веб-роли через портал, а также присутствует в конфигурационном файле. store.Certificates.Count равен нулю. Этот код отлично работает в эмуляторе, но каким-то образом не может отображать сертификаты веб-роли. Как получить доступ к сертификату, установленному в веб-роли?

+0

Правильно ли хранится сертификат? Любые ошибки (например, проблема разрешения)? – mcollier

+0

Да, хранилище сертификатов правильно. Также я вошел в свою веб-роль, и странно, что в личном магазине нет сертификата. Но я вижу сертификат в IIS на веб-роли. – ZafarYousafi

ответ

0

Получил это, я не предоставлял никакого имени и местоположения магазина в классе Store и предполагал, что он будет искать в каждом магазине и месте, но это было не так. Затем я предоставил имя и местоположение магазина, и теперь система может найти сертификат.