Пример #1
0
        public static string CanonicalizeHttpRequestDefault(Uri address, NephosUriComponents uriComponents, string method, string contentType, NameValueCollection headers, bool isFileService = false, string rawUrl = null)
        {
            MessageCanonicalizer.CanonicalizedString canonicalizedString = new MessageCanonicalizer.CanonicalizedString(method);
            canonicalizedString.AppendCanonicalizedElement(MessageCanonicalizer.GetContentMD5(headers));
            canonicalizedString.AppendCanonicalizedElement(contentType);
            string str = null;

            if (HttpRequestAccessorCommon.GetHeaderValues(headers, "x-ms-date").Count <= 0)
            {
                string[] values = headers.GetValues("Date");
                str = (values == null || (int)values.Length == 0 ? string.Empty : values[0]);
            }
            else
            {
                str = null;
            }
            canonicalizedString.AppendCanonicalizedElement(str);
            ArrayList arrayLists = new ArrayList();

            foreach (string key in headers.Keys)
            {
                if (key == null || !key.ToLowerInvariant().StartsWith("x-ms-", StringComparison.Ordinal))
                {
                    continue;
                }
                arrayLists.Add(key.ToLowerInvariant());
            }
            arrayLists.Sort();
            foreach (string arrayList in arrayLists)
            {
                string canonicalizedHeaderValue = MessageCanonicalizer.GetCanonicalizedHeaderValue(headers, arrayList);
                if (string.IsNullOrEmpty(canonicalizedHeaderValue) && !isFileService && MessageCanonicalizer.IsVersionBeforeFeb16(headers["x-ms-version"]))
                {
                    continue;
                }
                StringBuilder stringBuilder = new StringBuilder(arrayList);
                stringBuilder.Append(":");
                stringBuilder.Append(canonicalizedHeaderValue);
                canonicalizedString.AppendCanonicalizedElement(stringBuilder.ToString());
            }
            canonicalizedString.AppendCanonicalizedElement(MessageCanonicalizer.GetCanonicalizedResource(address, uriComponents, rawUrl));
            return(canonicalizedString.Value);
        }
Пример #2
0
        public static string CanonicalizeHttpRequestVer1(NephosUriComponents uriComponents, HttpWebRequest request)
        {
            string canonicalizedHeaderValue;
            Uri    address = request.Address;
            NephosUriComponents nephosUriComponent = uriComponents;
            string method = request.Method;
            string str    = MessageCanonicalizer.GetCanonicalizedHeaderValue(request.Headers, "Content-Encoding");
            string canonicalizedHeaderValue1 = MessageCanonicalizer.GetCanonicalizedHeaderValue(request.Headers, "Content-Language");

            if (request.Headers["Content-Length"] != null)
            {
                canonicalizedHeaderValue = MessageCanonicalizer.GetCanonicalizedHeaderValue(request.Headers, "Content-Length");
            }
            else
            {
                canonicalizedHeaderValue = (request.ContentLength < (long)0 ? string.Empty : Convert.ToString(request.ContentLength));
            }
            return(MessageCanonicalizer.CanonicalizeHttpRequestVer1(address, nephosUriComponent, method, str, canonicalizedHeaderValue1, canonicalizedHeaderValue, MessageCanonicalizer.GetCanonicalizedHeaderValue(request.Headers, "Content-MD5"), (request.Headers["Content-Type"] != null ? MessageCanonicalizer.GetCanonicalizedHeaderValue(request.Headers, "Content-Type") : request.ContentType), MessageCanonicalizer.GetCanonicalizedHeaderValue(request.Headers, "Date"), MessageCanonicalizer.GetCanonicalizedHeaderValue(request.Headers, "If-Modified-Since"), MessageCanonicalizer.GetCanonicalizedHeaderValue(request.Headers, "If-Match"), MessageCanonicalizer.GetCanonicalizedHeaderValue(request.Headers, "If-None-Match"), MessageCanonicalizer.GetCanonicalizedHeaderValue(request.Headers, "If-Unmodified-Since"), MessageCanonicalizer.GetCanonicalizedHeaderValue(request.Headers, "Range"), request.Headers, false, null, false));
        }
Пример #3
0
        public static string GetNephosOrStandardDateString(NameValueCollection headers)
        {
            string str = null;

            str = (HttpRequestAccessorCommon.GetHeaderValues(headers, "x-ms-date").Count <= 0 ? headers.GetValues("Date")[0] : MessageCanonicalizer.GetCanonicalizedHeaderValue(headers, "x-ms-date"));
            return(str);
        }