示例#1
0
        public void ProcessRequest(HttpContext context)
        {
            try
            {
                if (context.Session == null)
                {
                    return;
                }
                log.Debug("wbos ProcessRequest " + context.Session.SessionID);

                string sitePath = context.Request.ApplicationPath;
                if (sitePath.EndsWith("/"))
                {
                    sitePath = sitePath.TrimEnd('/');
                }

                StreamReader reader      = new StreamReader(context.Request.InputStream);
                string       requestText = reader.ReadToEnd();
                reader.Close();
                umc = Umc.getInstance(context);
                ISecurity security = umc.Security;
                Wjs       wjs      = new Wjs();
                wjs.setContext(umc);

                JoapRequest req = JsonToJoapRequest(requestText);

                JoapResonse resp = new JoapResonse();

                if (!security.CheckObjectPermission(req.ObjCls, req.ObjName, PermissionTypes.Read))
                {
                    security.CheckingUrl = context.Request.UrlReferrer.AbsoluteUri;
                    resp.Err             = JsonExceptionUtils.ThrowErr(SecErrs.NotPemission, sitePath + security.LoginPageUrl).Err;
                }
                else
                {
                    resp = wjs.Invoke(req, context.Session.SessionID);
                }
                //  string jsonResp = JsonConvert.SerializeObject(resp);
                //            string jsonResp = JsonConvert.SerializeObject(resp);

                System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
                string jsonResp = serializer.Serialize(resp);


                context.Response.Write(jsonResp);
            }
            catch (Exception err)
            {
                context.Response.Write(JsonExceptionUtils.ThrowErr(err).Serialize());
            }
        }
示例#2
0
        private JoapRequest JsonToJoapRequest(string jsonRequest)
        {
            JoapRequest ret = JsonConvert.DeserializeObject <JoapRequest>(jsonRequest);

            return(ret);
            //            JsonConvert.DeserializeObject<JoapRequest>(

            //JObject jObj = JObject.Parse(jsonRequest);

            //ListData<string> pks = ret.Paramates.Keys.ToList();
            //for (int i = 0; i < pks.Count; i++)
            //{
            //    string paramName = pks[i];
            //    JToken jt = jObj["Paramates"][paramName];
            //    //ParameterInfo pInfo = umc.Umc.GetClassMethodParamInfo(ret.ObjCls, ret.Method, paramName);
            //    string js = jt.ToString();
            //    //object o = JsonConvert.DeserializeObject(js, pInfo.ParameterType);
            //    ret.Paramates[paramName] = js;
            //}

            //return ret;
        }