Exemple #1
0
 string CanonicalHeaders(WebTestRequestHeaderCollection headers)
 {
     return(String.Join("", headers
                        .Where(header => header.Name.StartsWith("x-ms"))
                        .Select(header => Tuple.Create(header.Name.ToLower(), header.Value))
                        .OrderBy(header => header.Item1)
                        .Select(header => String.Format("{0}:{1}\n", header.Item1, header.Item2))));
 }
Exemple #2
0
        /// <summary>
        /// Gets the request header.
        /// </summary>
        /// <param name="headers">The headers.</param>
        /// <returns></returns>
        private static string GetRequestHeader(WebTestRequestHeaderCollection headers)
        {
            string requestHeader = string.Empty;

            for (int i = 0; i < headers.Count; i++)
            {
                requestHeader = requestHeader + headers[i].Name + ": " + headers[i].Value + "\n";
            }

            return(requestHeader);
        }
Exemple #3
0
 string CanonicalHeaders(WebTestRequestHeaderCollection headers)
 {
     return String.Join("", headers
         .Where(header => header.Name.StartsWith("x-ms"))
         .Select(header => Tuple.Create(header.Name.ToLower(), header.Value))
         .OrderBy(header => header.Item1)
         .Select(header => String.Format("{0}:{1}\n", header.Item1, header.Item2)));
 }
Exemple #4
0
 string GetAuthSignature(string verb, string contentType, string requestDate, string uriPath, WebTestRequestHeaderCollection headers)
 {
     string stringToSign = String.Format("{0}\n\n{1}\n{2}\n{3}{4}",
         verb,
         contentType,
         requestDate,
         CanonicalHeaders(headers),
         CanonicalResource(uriPath));
     var bytesToSign = Encoding.UTF8.GetBytes(stringToSign);
     using (var hmac = new HMACSHA256(Convert.FromBase64String((string)this.Context["AccountKey"])))
     {
         return Convert.ToBase64String(hmac.ComputeHash(bytesToSign));
     }
 }
Exemple #5
0
        string GetAuthSignature(string verb, string contentType, string requestDate, string uriPath, WebTestRequestHeaderCollection headers)
        {
            string stringToSign = String.Format("{0}\n\n{1}\n{2}\n{3}{4}",
                                                verb,
                                                contentType,
                                                requestDate,
                                                CanonicalHeaders(headers),
                                                CanonicalResource(uriPath));
            var bytesToSign = Encoding.UTF8.GetBytes(stringToSign);

            using (var hmac = new HMACSHA256(Convert.FromBase64String((string)this.Context["AccountKey"])))
            {
                return(Convert.ToBase64String(hmac.ComputeHash(bytesToSign)));
            }
        }
Exemple #6
0
        /// <summary>
        /// Gets the test results.
        /// </summary>
        /// <param name="method">The method.</param>
        /// <param name="urlWithQueryString">The URL with query string.</param>
        /// <param name="requestHttpVersion">The request HTTP version.</param>
        /// <param name="requestHeaders">The request headers.</param>
        /// <param name="requestBody">The request body.</param>
        /// <param name="response">The response.</param>
        /// <returns></returns>
        public static string GetTestResults(string method, string urlWithQueryString, string requestHttpVersion, WebTestRequestHeaderCollection requestHeaders, StringHttpBody requestBody, WebTestResponse response)
        {
            string methodAndUrlWithQueryString = method + " " + urlWithQueryString + " " + "HTTP/" + requestHttpVersion;
            string reqHeaders  = GetRequestHeader(requestHeaders);
            string reqBody     = GetRequestStringBody(requestBody);
            string respHeaders = GetResponseHeader(response);
            string respBody    = GetResponseStringBody(response);

            string finalResult = ">>> REQUEST <<<\n" + methodAndUrlWithQueryString + "\n" + reqHeaders + "\n" + reqBody + "\n\n>>> RESPONSE <<<\n" + respHeaders + "\n" + respBody;

            return(finalResult);
        }