Skip to content

Instantly share code, notes, and snippets.

@mollyporph
Last active March 16, 2016 20:43
Show Gist options
  • Save mollyporph/086c2d8156b601b28282 to your computer and use it in GitHub Desktop.
Save mollyporph/086c2d8156b601b28282 to your computer and use it in GitHub Desktop.
private string GetSasToken(string sasKeyName, string sasKeyValue)
{
var fromEpochStart = DateTime.UtcNow - new DateTime(1970, 1, 1);
var expiry = Convert.ToString((int)fromEpochStart.TotalSeconds + 3600);
var stringToSign = WebUtility.UrlEncode(_baseAddress) + "\n" + expiry;
var hmac = new HMACSHA256(Encoding.UTF8.GetBytes(sasKeyValue));
var signature = Convert.ToBase64String(hmac.ComputeHash(Encoding.UTF8.GetBytes(stringToSign)));
var sasToken = string.Format(CultureInfo.InvariantCulture, "SharedAccessSignature sr={0}&sig={1}&se={2}&skn={3}",
WebUtility.UrlEncode(_baseAddress), WebUtility.UrlEncode(signature), expiry, sasKeyName);
return sasToken;
}
//Used to retrieve azure servicebus SAS token when using the REST-based approach
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment