【发布时间】:2016-07-18 09:55:19
【问题描述】:
我正在尝试生成帐户 SAS 令牌: MSDN DOC
当我尝试使用生成的令牌时,我得到以下信息:
AuthenticationFailed服务器未能验证请求。确保 Authorization 标头的值正确形成,包括签名。 请求ID:89959111-0001-00c8-24d1-e0515b000000 时间:2016-07-18T08:49:00.8383767Z 签名不匹配。使用的签名字符串是 [accountName] rl b sc 2017-01-01 2015-04-05
这是我的代码:
var signedVersion = "2015-04-05";
var signedServices = "b";
var signedResourceTypes = "sc";
var signedPermission = "rl";
var signedExpiry = "2017-01-01";
var stringToSign =
accountName + "\n" +
signedPermission + "\n" +
signedServices + "\n" +
signedResourceTypes + "\n" +
signedExpiry + "\n" +
signedVersion + "\n"
;
var keyBytes = Encoding.UTF8.GetBytes(accountKey);
byte[] hash;
using (var mac = new HMACSHA256(keyBytes))
{
var stringToSignBytes = Encoding.UTF8.GetBytes(stringToSign);
hash = mac.ComputeHash(stringToSignBytes);
}
var str = Convert.ToBase64String(hash);
var sig = HttpUtility.UrlEncode(str);
var url = $"https://{accountName}.blob.core.windows.net/?comp=list&sv={signedVersion}&ss={signedServices}&srt={signedResourceTypes}&sp={signedPermission}&se={signedExpiry}&sig={sig}";
我做错了什么?
【问题讨论】:
标签: azure azure-storage