รับข้อมูลประจำตัวไคลเอ็นต์การจัดเก็บข้อมูลด้วยไฟล์ Azure publishsettings

ฉันมีไฟล์การตั้งค่าการเผยแพร่ Azure ตอนนี้ฉันต้องเข้าถึงบัญชีที่เก็บข้อมูลด้วยชื่อที่ระบุภายในการสมัครสมาชิก

จะทำให้สำเร็จใน C# ได้อย่างไร?


person alexey    schedule 18.03.2013    source แหล่งที่มา
comment
คุณต้องการรับรายละเอียดของบัญชีพื้นที่จัดเก็บข้อมูลเฉพาะโดยไปที่ API การจัดการบริการหรือไม่   -  person mcollier    schedule 18.03.2013


คำตอบ (1)


ฉันเขียนโค้ดด้านล่างและตรวจสอบว่าใช้งานได้ อ้างอิงจากโพสต์ของ Wade: การติดตั้งและการใช้ใบรับรองการจัดการของคุณโดยทางโปรแกรมด้วยไฟล์ .publishsettings ใหม่ จากนั้นฉันก็เรียกใช้เมธอด รับคีย์บัญชีที่เก็บข้อมูล พอยน์เตอร์สองสามข้อดังที่กล่าวไว้ในโพสต์ของ Wade: ควรสร้างใบรับรองและติดตั้งในเครื่องดีกว่า จากนั้นใช้เพื่อเรียก SM API เพื่อให้คุณสามารถลบไฟล์ .publishsettings ได้ มีข้อมูลใบรับรอง SM API ของคุณอยู่ในนั้น ดังนั้นคุณควรลบออกหรือเก็บไว้อย่างปลอดภัย รหัสนี้ไม่ได้ทำการติดตั้งเพื่อความกระชับ แต่โพสต์ของ Wade มี

        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();
person Sean Osterberg    schedule 18.03.2013