Пример #1
0
        /// <summary>
        /// 获取GET请求 发来的参数
        /// </summary>
        /// <param name="httpContext"></param>
        /// <returns></returns>
        private SignRequestData GetRequestParamsQueryString(HttpContext httpContext)
        {
            var result    = new SignRequestData();
            var paramList = new Dictionary <string, dynamic>();

            foreach (var key in httpContext.Request.Query.Keys)
            {
                paramList.Add(key, httpContext.Request.Query[key].ToString());
            }
            result.Sign = paramList.GetValueOrDefault("sign").ToString();
            result.time = paramList.GetValueOrDefault("time").ToString();
            result.Data = GetQueryParamsStr(new SortedDictionary <string, dynamic>(paramList));
            return(result);
        }
Пример #2
0
        /// <summary>
        /// 获取POST 请求发来的参数
        /// </summary>
        /// <param name="httpContext"></param>
        /// <returns></returns>
        private SignRequestData GetRequestParamsBody(HttpContext httpContext)
        {
            var result = new SignRequestData();

            httpContext.Request.EnableBuffering();//重置读取位置
            httpContext.Request.Body.Position = 0;
            var bodyString = string.Empty;

            using (var stream = new StreamReader(httpContext.Request.Body))
            {
                bodyString = stream.ReadToEnd();
            }
            var data        = bodyString.Deserialize <dynamic>();                    //转为动态类型
            var queryParams = Utility.Other.ReflectHelper.ConvertToDictionary(data); //转换为QueryString验签

            result.time = data.Time;
            result.Sign = httpContext.Request.Headers["sign"];//httpContext.Request.Query["sign"].ToString();//从url中获取签名
            //result.Data = GetQueryParamsStr(new SortedDictionary<string, dynamic>(queryParams));
            result.Data = GetQueryParamsStr(queryParams);
            return(result);
        }