|
50精币
public static string CreateSASToken(string key, string keyName, TimeSpan timeout)
{
var values = new Dictionary<string, string>
{
{ KeyNameKey, keyName },
{ ExpiryKey, (DateTimeOffset.UtcNow + timeout).ToUnixTimeSeconds().ToString() }
};
var signContent = string.Join("&", values
.Where(pair => pair.Key != SignKey)
.OrderBy(pair => pair.Key)
.Select(pair => $"{pair.Key}={HttpUtility.UrlEncode(pair.Value)}"));
string sign;
using (var hmac = new HMACSHA256(Encoding.UTF8.GetBytes(key)))
{
sign =
Convert.ToBase64String(hmac.ComputeHash(Encoding.UTF8.GetBytes(signContent)));
}
return $"{Schema} {SignKey}={HttpUtility.UrlEncode(sign)}&{signContent}";
}
老哥帮忙看看。 |
|