除了下面的CreateAuthenticationHeader函数之外,其他相同的代码。在.Net 4.5 MVC5中,我可以使用REST访问(REST,没有存储库)一张蔚蓝的表,而无需使用以下内容:
private static string CreateAuthorizationHeader(string canonicalizedString)
{
var sharedKeyParts = SvcComsCommon.AzureStorageConnectStringDict();
var signature = string.Empty;
using (HMACSHA256 hmacSha256 = new HMACSHA256(Convert.FromBase64String(sharedKeyParts["AccountKey"])))
{
var dataToHmac = System.Text.Encoding.UTF8.GetBytes(canonicalizedString);
signature = Convert.ToBase64String(hmacSha256.ComputeHash(dataToHmac));
}
var account = sharedKeyParts["AccountName"];
var authorizationHeader = string.Format(
CultureInfo.InvariantCulture,
"{0} {1}:{2}",
"SharedKey",
account,
signature);
return authorizationHeader;
}在Windows物联网-核心(UWP)最新从2015年10月,我使用以下(因为上面不支持),这给我一个403错误,并抱怨我的签名是错误的。其余的代码是相同的。我错过了什么细微之处?
private static string CreateAuthorizationHeader(string canonicalizedString)
{
var sharedKeyParts = SvcComsCommon.AzureStorageConnectStringDict(); // Just the Azure Storage Connection String as Dictionary. No tricks.
var key = CryptographicBuffer.ConvertStringToBinary(sharedKeyParts["AccountKey"], BinaryStringEncoding.Utf8);
var msg = CryptographicBuffer.ConvertStringToBinary(canonicalizedString, BinaryStringEncoding.Utf8);
// Create HMAC.
var objMacProv = MacAlgorithmProvider.OpenAlgorithm(MacAlgorithmNames.HmacSha256);
var hash = objMacProv.CreateHash(key);
hash.Append(msg);
var signature = CryptographicBuffer.EncodeToBase64String(hash.GetValueAndReset());
// Header
var account = sharedKeyParts["AccountName"];
var authorizationHeader = string.Format(
CultureInfo.InvariantCulture,
"{0} {1}:{2}",
"SharedKey",
account,
signature);
return authorizationHeader;
}我已经看过其他的帖子了,还没看到缺了什么。
更新物联网核心RPi ARM上的错误消息
The operation identifier is not valid.
at SharedLibrary!<BaseAddress>+0x8d1eb9
at SharedLibrary!<BaseAddress>+0xd0e30b
at SharedLibrary!<BaseAddress>+0xd0e7af
at SharedLibrary!<BaseAddress>+0xd0e715
at SharedLibrary!<BaseAddress>+0xd0e69f
at RpiHeadlessCS.Devices.HxaRs485Ftdi.<ReadAsync>d__26.MoveNext()
Exception thrown: 'System.Exception' in RpiHeadlessCS-uwp.Interop.dll
Read async error: The operation identifier is not valid.发布于 2016-01-25 22:27:38
UWP在框架中存在一个与缓存行为有关的错误,这会导致Azure存储的Auth错误。他们正在进行修复,但我不能100%确定什么时候会部署该修复程序。真对不起!
https://stackoverflow.com/questions/35002762
复制相似问题