Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        /// <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);
            }
        }