Beispiel #1
0
        private void ReadCookies(IRequestValues values)
        {
            var cookies = new HttpCookieCollection();

            foreach (var cookievalues in Request.Headers.GetCookies())
            {
                foreach (var cookie in cookievalues.Cookies)
                {
                    var c = new HttpCookie(cookie.Name, cookie.Value)
                    {
                        Domain   = cookievalues.Domain,
                        HttpOnly = cookievalues.HttpOnly,
                        Path     = cookievalues.Path,
                        Secure   = cookievalues.Secure,
                    };
                    if (cookievalues.Expires.HasValue)
                    {
                        c.Expires = cookievalues.Expires.Value.DateTime;
                    }

                    cookies.Add(c);
                }
            }
            values.Cookies = cookies;
        }
Beispiel #2
0
 private void ReadOther(IRequestValues values)
 {
     values.Url      = Url;
     values.Path     = Url.LocalPath;
     values.PathInfo = "";
     values.RawUrl   = Url.PathAndQuery;
 }
Beispiel #3
0
        private void ReadRouteData(IRequestValues values)
        {
            var nv = new NameValueCollection();

            foreach (var item in ControllerContext.RouteData.Values)
            {
                nv.Add(item.Key, item.Value + "");
            }
            values.RouteDatas = nv;
        }
Beispiel #4
0
        private async Task ReadBody(IRequestValues values)
        {
            if (Request.Content.IsMimeMultipartContent())
            {
                var bodyparts = await Request.Content.ReadAsMultipartAsync();

                var form  = new NameValueCollection(StringComparer.OrdinalIgnoreCase);
                var files = new PostedFileCollection();
                foreach (var content in bodyparts.Contents)
                {
                    var headers = content.Headers;
                    var distion = headers.ContentDisposition;
                    if (headers.ContentType == null)
                    {
                        form.Add(distion.Name.Trim(FileWarpper), await content.ReadAsStringAsync());
                    }
                    else
                    {
                        files.Add(distion.Name.Trim(FileWarpper),
                                  new PostedFile()
                        {
                            Name   = distion.FileName.Trim(FileWarpper),
                            Type   = headers.ContentType.MediaType.Trim(FileWarpper),
                            Length = (int)headers.ContentLength.GetValueOrDefault(-1),
                            Stream = await content.ReadAsStreamAsync()
                        });
                    }
                }
                values.Form  = form;
                values.Files = files;
            }
            else
            {
                values.Form = await Request.Content.ReadAsFormDataAsync();
            }
            values.FormBody = await Request.Content.ReadAsByteArrayAsync();
        }
Beispiel #5
0
 private void ReadQueryStrings(IRequestValues values)
 {
     values.QueryString = HttpUtility.ParseQueryString(Url.Query);
 }
Beispiel #6
0
 private void ReadHeaders(IRequestValues values)
 {
     values.Headers = new RequestHeaders(Request.Headers);
 }