Как вы можете получить сертификат в коде на Windows Azure - PullRequest
8 голосов
/ 14 апреля 2011

Я пытаюсь создать собственный провайдер идентификации WIF и запустить его в Azure, но у меня возникают трудности при попытке автоматически сгенерировать метаданные федерации.

Эта строка не работает в Azure:

CertificateUtil.GetCertificate(StoreName.My, StoreLocation.LocalMachine, signingCertificateName);

Сертификат загружен в Azure, как я могу получить его?

Спасибо

Ответы [ 2 ]

9 голосов
/ 15 апреля 2011

В качестве небольшого отклонения от других ответов, если вы просто хотите получить один сертификат, а не проходить через все из них, вы можете сделать что-то вроде этого:

var store = new X509Store(StoreName.My, StoreLocation.LocalMachine);

store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);

X509Certificate2Collection matchedCertificates =
     store.Certificates.Find(X509FindType.FindBySubjectName, signingCertificateName, true);

if (matchedCertificates.Count > 0)
{
    myCertificate = matchedCertificates[0]; 
}

(что также не относится к Azure)

7 голосов
/ 14 апреля 2011

Попробуйте это сообщение в блоге: http://blogs.msdn.com/b/jnak/archive/2010/01/29/installing-certificates-in-windows-azure-vms.aspx

Он предлагает код вроде:

X509Certificate2Collection selectedCerts = new X509Certificate2Collection();

X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.OpenExistingOnly | OpenFlags.ReadOnly);
foreach (X509Certificate2 cert in store.Certificates)
{
    // do stuff with cert
}
...