예제 #1
0
        private bool MatchesHeader(KeyValuePair <string, string> matchHeader, System.Net.Http.Headers.HttpRequestHeaders messageHeader)
        {
            IEnumerable <string> values;

            if (!messageHeader.TryGetValues(matchHeader.Key, out values))
            {
                return(false);
            }

            return(values.Any(v => v == matchHeader.Value));
        }
예제 #2
0
        private static string GetFirstHeaderValue(System.Net.Http.Headers.HttpRequestHeaders httpRequestHeaders, string headerName)
        {
            string retVal = null;
            IEnumerable <String> values = null;

            if (httpRequestHeaders.TryGetValues(headerName, out values) && values != null)
            {
                retVal = values.FirstOrDefault();
            }

            return(retVal);
        }
예제 #3
0
        public IRequestHeader Parse(System.Net.Http.Headers.HttpRequestHeaders HttpRequestHeaders)
        {
            IEnumerable <string> IfNoneExist;

            if (HttpRequestHeaders.TryGetValues(_IfNoneExistHeader, out IfNoneExist))
            {
                this.IfNoneExist = IfNoneExist.FirstOrDefault();
            }

            IEnumerable <string> IfModifiedSince;

            if (HttpRequestHeaders.TryGetValues(_IfModifiedSinceHeader, out IfModifiedSince))
            {
                this.IfModifiedSince = IfModifiedSince.FirstOrDefault();
            }

            IEnumerable <string> IfNoneMatchHeader;

            if (HttpRequestHeaders.TryGetValues(_IfNoneMatchHeader, out IfNoneMatchHeader))
            {
                this.IfNoneMatch = IfNoneMatchHeader.FirstOrDefault();
            }

            IEnumerable <string> IfMatchHeader;

            if (HttpRequestHeaders.TryGetValues(_IfMatchHeader, out IfMatchHeader))
            {
                this.IfMatch = IfMatchHeader.FirstOrDefault();
            }

            IEnumerable <string> PreferHeader;

            if (HttpRequestHeaders.TryGetValues(_PreferHeader, out PreferHeader))
            {
                this.Prefer.Set(PreferHeader.FirstOrDefault());
            }

            return(this);
        }
예제 #4
0
        private string GetAuthorizationError(System.Net.Http.Headers.HttpRequestHeaders headers)
        {
            try
            {
                headers.TryGetValues("UnauthorizedMessage", out IEnumerable <string> unauthorizedMessages);

                if (unauthorizedMessages != null && unauthorizedMessages.Count() > 0)
                {
                    return(unauthorizedMessages.FirstOrDefault());
                }
            }
            catch (Exception ex)
            {
                return(ex.Message);
            }

            return(string.Empty);
        }