コード例 #1
0
        public void Handle(HttpDiscussion discussion)
        {
            var url_part = discussion.Request.Url;

            // do some basic sanitization of the URL, attempting to make sure they can't read files outside the basepath
            // NOTE: this is probably not bulletproof/secure
            url_part = url_part.Replace("\\..\\", "\\");
            url_part = url_part.Replace("/../", "/");
            url_part = url_part.Replace("//", "/");
            url_part = url_part.Replace(@"\\", @"\");
            url_part = url_part.Replace(":", "");
            url_part = url_part.Replace("/", Path.DirectorySeparatorChar.ToString());

            foreach (var file in FilesPath)
            {
                if (file.Path == url_part)
                {
                    var file_extension = GetExtension(url_part);

                    discussion.Response                         = new HttpResponse();
                    discussion.Response.StatusCode              = "200";
                    discussion.Response.ReasonPhrase            = "Ok";
                    discussion.Response.Headers["Content-Type"] = QuickMimeTypeMapper.GetMimeType(file_extension);
                    discussion.Response.Content                 = file.Content;

                    return;
                }
            }

            discussion.Response = HttpBuilder.NotFound();
        }
コード例 #2
0
ファイル: Routes.cs プロジェクト: eric3361229/WCS-1
        private HttpResponse HomeIndex(HttpRequest request)
        {
            //try
            //{
            //    if (request.Content != null)
            //    {
            //        WmsModel model = JsonConvert.DeserializeObject<WmsModel>(request.Content);
            //        HttpResponse response;
            //        switch (model.Task_type)
            //        {
            //            case WmsStatus.StockInTask:
            //                response = CheckWmsModel(model, WmsStatus.StockCheckTask, false);
            //                break;
            //            case WmsStatus.StockOutTask:
            //                response = CheckWmsModel(model, WmsStatus.StockCheckTask, false);
            //                break;
            //            case WmsStatus.StockMoveTask:
            //                response = CheckWmsModel(model, WmsStatus.StockCheckTask, false);
            //                break;
            //        }
            //        if (response != null) return response;
            //        if (!WmsModelAdd(model, out string result))
            //        {
            //            return FailResponse(result);
            //        }
            //        return OkResponse();
            //    }
            //}
            //catch (Exception e)
            //{
            //    Console.WriteLine(e.Message);
            //}
            return(HttpBuilder.NotFound());
            //string value = "";
            //if (request.Headers.ContainsKey("WMS_DATA"))
            //{
            //    value = request.Headers["WMS_DATA"];
            //}

            //return new HttpResponse()
            //{
            //    ContentAsUTF8 = "{\"data\":\""+ value
            //        +"\",\"name\":\"kyle\",\"age\":18,\"friend\":[{\"name\":\"matt\",\"sex\":\"man\"},{\"name\":\"butt\",\"sex\":\"man\"}]}",
            //    ReasonPhrase = "OK",
            //    StatusCode = "200"
            //};
        }
コード例 #3
0
ファイル: Routes.cs プロジェクト: xdpcxq/WCS
        private HttpResponse HomeIndex(HttpRequest request)
        {
            return(HttpBuilder.NotFound());
            //string value = "";
            //if (request.Headers.ContainsKey("WMS_DATA"))
            //{
            //    value = request.Headers["WMS_DATA"];
            //}

            //return new HttpResponse()
            //{
            //    ContentAsUTF8 = "{\"data\":\""+ value
            //        +"\",\"name\":\"kyle\",\"age\":18,\"friend\":[{\"name\":\"matt\",\"sex\":\"man\"},{\"name\":\"butt\",\"sex\":\"man\"}]}",
            //    ReasonPhrase = "OK",
            //    StatusCode = "200"
            //};
        }
コード例 #4
0
        public HttpResponse Handle(HttpRequest request)
        {
            var url_part = request.GetPath();

            //read everything before query params start
            if (url_part.Contains("?"))
            {
                url_part = url_part.Substring(0, url_part.IndexOf("?"));
            }

            // do some basic sanitization of the URL, attempting to make sure they can't read files outside the basepath
            // NOTE: this is probably not bulletproof/secure
            url_part = url_part.Replace("\\..\\", "\\");
            url_part = url_part.Replace("/../", "/");
            url_part = url_part.Replace("//", "/");
            url_part = url_part.Replace(@"\\", @"\");
            url_part = url_part.Replace(":", "");
            url_part = url_part.Replace("/", Path.DirectorySeparatorChar.ToString());

            // make sure the first part of the path is not
            if (url_part.Length > 0)
            {
                var first_char = url_part.ElementAt(0);
                if (first_char == '/' || first_char == '\\')
                {
                    url_part = "." + url_part;
                }
            }
            var local_path = Path.Combine(this.BasePath, url_part);

            if (ShowDirectories && Directory.Exists(local_path))
            {
                // Console.WriteLine("FileSystemRouteHandler Dir {0}",local_path);
                return(Handle_LocalDir(request, local_path));
            }
            else if (File.Exists(local_path))
            {
                // Console.WriteLine("FileSystemRouteHandler File {0}", local_path);
                return(Handle_LocalFile(request, local_path));
            }
            else
            {
                return(HttpBuilder.NotFound());
            }
        }
コード例 #5
0
        public static HttpResponse Get(HttpRequest request)
        {
            if (!request.GetParams.ContainsKey("user_id") || !request.GetParams.ContainsKey("sum"))
            {
                return(HttpBuilder.NotFound());
            }

            if (!long.TryParse(request.GetParams["user_id"], out var userId))
            {
                return(HttpBuilder.NotFound());
            }
            if (!float.TryParse(request.GetParams["sum"], out var sum))
            {
                return(HttpBuilder.NotFound());
            }

            if (userId == 0 || Math.Abs(sum) < 1)
            {
                return(HttpBuilder.NotFound());
            }

            Payments.Payment payment = Payments.CreatePayment(userId, sum, Payments.Type.Income);
            if (payment.PaymentId == 0)
            {
                return(HttpBuilder.NotFound());
            }

            // Получение параметров
            var data = Interkassa.GetDefaultData(payment.PaymentId, payment.Sum);

            // Добавляем в конец параметров ключ по которому будет высчитан хэш
            data.Add("ik_sign", Interkassa.SecretKey);
            var sign = Interkassa.GetEncodedSign(data.Values.ToArray());

            // Заменяем ключ на хэш
            data["ik_sign"] = sign;

            return(new HttpResponse()
            {
                ContentAsUTF8 = Interkassa.GetForm(data),
                ReasonPhrase = "OK",
                StatusCode = "200"
            });
        }