Я пытаюсь прочитать изображение, используя заголовок авторизации, но, похоже, произошла ошибка в создаваемой строке авторизованного заголовка.Я получаю следующую ошибку.
<?xml version="1.0" encoding="utf-8"?>
<Error>
<Code>AuthenticationFailed</Code>
<Message>Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.
RequestId:a5e98b3e-c01e-002e-19ad-be5c0e000000
Time:2019-02-07T06:22:40.0625641Z</Message>
<AuthenticationErrorDetail>The MAC signature found in the HTTP request 'm+68ihJL2+Wl0Cm1vuXOHnzq4ma56utn/62hSCv6rjo=' is not the same as any computed signature. Server used following string to sign: 'GET
image/jpeg
x-ms-blob-type:Block blob
x-ms-date:Thu, 07 Feb 2019 06:21:44 GMT
x-ms-version:2018-03-28
/<accountName>/<container>/<image.jpg>'.</AuthenticationErrorDetail>
</Error>
Это код, который я использовал для генерации заголовка.
namespace ShaKey
{
class Program
{
static void Main(string[] args)
{
string stringToSign = "GET\n\n\n\n\nimage/jpeg\n\n\n\n\n\n\nx-
ms-date:" + DateTime.UtcNow.ToString("R",
CultureInfo.InvariantCulture) + "\nx-ms-
version:2018-03-28\n/<accountName>/<container>/<image.jpg>";
Console.WriteLine(SharedKey.CreateAuthorizationHeader(stringToSign));
string date = DateTime.UtcNow.ToString("R", CultureInfo.InvariantCulture);
Console.WriteLine(date);
}
}
public class SharedKey
{
public static String CreateAuthorizationHeader(String canonicalizedString)
{
String signature = String.Empty;
string storageAccountKey = "accountKey"
using (HMACSHA256 hmacSha256 = new HMACSHA256(Convert.FromBase64String(storageAccountKey)))
{
Byte[] dataToHmac = System.Text.Encoding.UTF8.GetBytes(canonicalizedString);
signature = Convert.ToBase64String(hmacSha256.ComputeHash(dataToHmac));
}
String authorizationHeader = String.Format(
CultureInfo.InvariantCulture,
"{0} {1}:{2}",
AzureStorageConstants.SharedKeyAuthorizationScheme,
AzureStorageConstants.Account,
signature
);
return authorizationHeader;
}
}
public class AzureStorageConstants
{
public static string SharedKeyAuthorizationScheme = "SharedKey";
public static string Account ="accountname";
}
}
Произошла ошибка в генерируемом заголовке.Где ошибка в коде ошибки?