У меня есть файл настроек публикации Azure. Теперь мне нужно получить доступ к учетной записи хранения с указанным именем в рамках подписки.
Как это сделать на С#?
У меня есть файл настроек публикации Azure. Теперь мне нужно получить доступ к учетной записи хранения с указанным именем в рамках подписки.
Как это сделать на С#?
Я написал код ниже и убедился, что он работает. Он основан на сообщении Уэйда: Программная установка и использование сертификата управления с новым файлом .publishsettings. Затем я вызываю метод Получить ключи учетной записи хранения. Несколько советов, упомянутых в сообщении Уэйда: лучше создать сертификат и установить его локально, а затем использовать его для вызова SM API, чтобы вы могли удалить файл .publishsettings. В нем есть информация о вашем сертификате SM API, поэтому вам следует удалить его или сохранить в безопасном месте. Этот код не выполняет установку для краткости, но в сообщении Уэйда он есть.
var publishSettingsFile =
@"C:\yourPublishSettingsFilePathGoesHere";
XDocument xdoc = XDocument.Load(publishSettingsFile);
var managementCertbase64string =
xdoc.Descendants("PublishProfile").Single().Attribute("ManagementCertificate").Value;
var managementCert = new X509Certificate2(
Convert.FromBase64String(managementCertbase64string));
// If you have more than one subscription, you'll need to change this
string subscriptionId = xdoc.Descendants("Subscription").First().Attribute("Id").Value;
string desiredStorageService = "yourStorageServiceName";
var req = (HttpWebRequest)WebRequest.Create(
string.Format("https://management.core.windows.net/{0}/services/storageservices/{1}/keys",
subscriptionId,
desiredStorageService));
req.Headers["x-ms-version"] = "2012-08-01";
req.ClientCertificates.Add(managementCert);
XNamespace xmlns = "http://schemas.microsoft.com/windowsazure";
XDocument response = XDocument.Load(req.GetResponse().GetResponseStream());
Console.WriteLine("Primary key: " + response.Descendants(xmlns + "Primary").First().Value);
Console.WriteLine("Secondary key: " + response.Descendants(xmlns + "Secondary").First().Value);
Console.Read();