/// <summary> /// Add the appropriate Authorization header to the WebRequest /// </summary> private void AddAuthorizationHeader(WebRequest webRequest, string bucket, string key, SortedList query) { if (webRequest.Headers[ThreeSharpUtils.ALTERNATIVE_DATE_HEADER] == null) { webRequest.Headers.Add(ThreeSharpUtils.ALTERNATIVE_DATE_HEADER, ThreeSharpUtils.GetHttpDate()); } string canonicalString = ThreeSharpUtils.MakeCanonicalString(bucket, key, query, webRequest); string encodedCanonical = ThreeSharpUtils.Encode(config.AwsSecretAccessKey, canonicalString, false); webRequest.Headers.Add(HttpRequestHeader.Authorization, "AWS " + config.AwsAccessKeyID + ":" + encodedCanonical); }
/// <summary> /// Add the appropriate Authorization header to the WebRequest /// </summary> /// private void AddAuthorizationHeader(WebRequest webRequest, Request request) { if (webRequest.Headers[ThreeSharpUtils.ALTERNATIVE_DATE_HEADER] == null) { webRequest.Headers.Add(ThreeSharpUtils.ALTERNATIVE_DATE_HEADER, ThreeSharpUtils.GetHttpDate()); } if (request.ServiceType == ThreeSharpServiceType.AWS100) { Encoding ae = new UTF8Encoding(); HMACSHA1 signature = new HMACSHA1(ae.GetBytes(config.AwsSecretAccessKey.ToCharArray())); string b64 = Convert.ToBase64String(signature.ComputeHash(ae.GetBytes(webRequest.Headers[ThreeSharpUtils.ALTERNATIVE_DATE_HEADER].ToCharArray()))); webRequest.Headers.Add(HttpRequestHeader.Authorization, "AWS" + " " + config.AwsAccessKeyID + ":" + b64); } else { string canonicalString = ThreeSharpUtils.MakeCanonicalString(request.BucketName, request.Key, request.QueryList, webRequest); string encodedCanonical = ThreeSharpUtils.Encode(config.AwsSecretAccessKey, canonicalString, false); webRequest.Headers.Add(HttpRequestHeader.Authorization, "AWS " + config.AwsAccessKeyID + ":" + encodedCanonical); } }