Azure Storage Explorer is a useful GUI tool for inspecting and altering the data in your Windows Azure Storage storage projects including the logs of your cloud-hosted applications.
All 3 types of cloud storage can be viewed and edited: blobs, queues, and tables.
public partial class Form1 : Form { const string uriTemplate = "http://{0}.table.core.windows.net/{1}"; const string uriTemplate2 = "http://{0}.table.core.windows.net/{1}/{2}"; string _sharedKey = "== your shared key from the portal goes here=="; string _accountName = "fastmotorcycle"; string _tableName = "fastbikes"; public Form1() { InitializeComponent(); } private void cmdMakeHeader_Click(object sender, EventArgs e) { var account = _accountName; var sharedKey = Convert.FromBase64String(_sharedKey); this.txtAccountName.Text = account; this.txtSharedKey.Text = _sharedKey; this.txtTableName.Text = _tableName; // Fill datetime field string datetime = DateTime.UtcNow.ToString("R", CultureInfo.InvariantCulture); this.txtDate.Text = datetime; // Fill uri field string uri = string.Format(uriTemplate, _accountName, _tableName); this.txtURI.Text = uri; // Create request object WebRequest request = WebRequest.Create(uri); // Add date header request.ContentLength = 0; request.Headers.Add("x-ms-date", datetime); // Get resource var resource = request.RequestUri.PathAndQuery; // Sign date, account and uri string stringToSign = string.Format("{0}\n/{1}{2}", request.Headers["x-ms-date"], account, resource ); this.txtMessageToSign.Text = stringToSign; // Sign the string using shared key var hasher = new HMACSHA256(sharedKey); string signedSignature = Convert.ToBase64String(hasher.ComputeHash(Encoding.UTF8.GetBytes(stringToSign))); this.txtSignedMessage.Text = signedSignature; // Add authorization header string authorizationHeader = string.Format("{0} {1}:{2}", "SharedKeyLite", account, signedSignature); request.Headers.Add("Authorization", authorizationHeader); // Show the signed message this.txtSignedMessage.Text = request.Headers.Get(0).ToString() + "\r\n"; this.txtSignedMessage.Text += request.Headers.Get(1).ToString() + "\r\n"; // Show the entire header this.txtHttpHeader.Text = "x-ms-date:" + request.Headers.Get(0).ToString() + "\r\n"; this.txtHttpHeader.Text += "Authorization:" + request.Headers.Get(1).ToString() + "\r\n"; this.txtHttpHeader.Text += "Content-Type:" + "application/atom+xml" + "\r\n"; if (this.txtPartitionKey.Text == String.Empty || this.txtRowKey.Text == String.Empty) return; this.txtResponseBody.Text = string.Format(Strings.response_header, this.txtPartitionKey.Text, this.txtRowKey.Text); } private void cmdClip2_Click(object sender, EventArgs e) { Clipboard.SetData(DataFormats.Text, (Object)this.txtResponseBody.Text); } private void cmdClip1_Click(object sender, EventArgs e) { Clipboard.SetData(DataFormats.Text, (Object)this.txtHttpHeader.Text); } }
<?xml version="1.0" encoding="utf-8"?> <entry xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom"> <title /> <author> <name /> </author> <updated>2011-10-04T15:28:55.7259928Z</updated> <id /> <content type="application/xml"> <m:properties> <d:PartitionKey>Bruno</d:PartitionKey> <d:RowKey>GSXR1000</d:RowKey> <d:Timestamp m:type="Edm.DateTime">0001-01-01T00:00:00</d:Timestamp> </m:properties> </content> </entry>
Typically, you will access Azure Table Storage through the ADO.NET Data Services API, found inside the Azure SDK Download. But there may be situations where you want to access Azure table storage outside of a Windows environment, such as from Java or PHP or any other non-MS platform. Remember, Azure tables are incredibly scalable, cost-effective, and performant. And Azure tables are also available from a purely http world.
Thanks for all the articles. I am new to Win Azure and Mobile domains. This was very helpful. Is there a link to download the Make Header win form app? Please share. I can be reached at prashant_ nerkar@hotmail.com