Exemplo n.º 1
0
        protected bool IsAuthorized()
        {
            // 验证token
            //var token = actionContext.Request.Headers.Authorization;
            var token = Request["token"];

            //var ts = actionContext.Request.Headers.Where(c => c.Key.ToLower() == "token").FirstOrDefault().Value;
            if (!string.IsNullOrWhiteSpace(token))
            {
                // 验证token
                if (!UserTokenManager.IsExistToken(token))
                {
                    return(false);
                }
                PropertyInfo isreadonly = typeof(System.Collections.Specialized.NameValueCollection).GetProperty("IsReadOnly", BindingFlags.Instance | BindingFlags.NonPublic);
                //把 QueryString 属性改为可读写
                isreadonly.SetValue(HttpContext.Request.QueryString, false, null);
                Request.QueryString.Add("MYORGANID", UserTokenManager.GetUserOrganId(token));
                return(true);
            }
            return(false);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 获取页面数据并转换成指定的实体。
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="minValuePINum">最小有值字段数,若有值字段的数量小于该数字,将返回null</param>
        /// <returns></returns>
        public T GetPageData <T>(int minValuePINum = 2)
        {
            if (typeof(System.Web.Mvc.Filter).IsAssignableFrom(typeof(T)))//判断T是否继承了Filter
            {
                minValuePINum = -1;
            }
            T _t = (T)Activator.CreateInstance(typeof(T));

            PropertyInfo[] propertys      = _t.GetType().GetProperties();
            int            haveValuePINum = 0;

            foreach (PropertyInfo pi in propertys)
            {
                string name = pi.Name;
                //如果参数是文件
                if (pi.GetCustomAttribute <FieldTypeAttribute>() != null && pi.GetCustomAttribute <FieldTypeAttribute>().fieldType == FieldTypeEnum.File)
                {
                    if (Request.Files[name] != null && Request.Files[name].ContentLength > 10)
                    {
                        //do save file
                        string PostFileName = Request.Files[name].FileName;
                        string FileName     = DateTime.Now.ToFileTime() + PostFileName.Substring(PostFileName.LastIndexOf("."));
                        string SavePath     = "/UserFiles/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
                        if (!Directory.Exists(Request.MapPath(SavePath)))
                        {
                            Directory.CreateDirectory(Request.MapPath(SavePath));
                        }
                        Request.Files[name].SaveAs(Request.MapPath(SavePath + FileName));
                        pi.SetValue(_t, SavePath + FileName);
                        haveValuePINum++;
                    }
                }
                else if (pi.GetCustomAttribute <FieldTypeAttribute>() != null && pi.GetCustomAttribute <FieldTypeAttribute>().fieldType == FieldTypeEnum.Ignore)
                {
                }
                else
                {
                    if (Request[name] != null)
                    {
                        if (pi.PropertyType.FullName.ToLower().Contains("datetime"))
                        {
                            DateTime iTemp = DateTime.Now;
                            if (DateTime.TryParse(Request[name], out iTemp))
                            {
                                pi.SetValue(_t, iTemp);
                            }
                        }
                        else if (pi.PropertyType.FullName.ToLower().Contains("int"))
                        {
                            int iTemp = 0;
                            if (int.TryParse(Request[name], out iTemp))
                            {
                                pi.SetValue(_t, iTemp);
                            }
                        }
                        else if (pi.PropertyType.FullName.ToLower().Contains("decimal"))
                        {
                            decimal iTemp = 0;
                            if (decimal.TryParse(Request[name], out iTemp))
                            {
                                pi.SetValue(_t, iTemp);
                            }
                        }
                        else if (pi.PropertyType.FullName.ToLower().Contains("double"))
                        {
                            double iTemp = 0;
                            if (double.TryParse(Request[name], out iTemp))
                            {
                                pi.SetValue(_t, iTemp);
                            }
                        }
                        else if (pi.PropertyType.FullName.ToLower().Contains("byte"))
                        {
                            byte iTemp = 0;
                            if (byte.TryParse(Request[name], out iTemp))
                            {
                                pi.SetValue(_t, iTemp);
                            }
                        }
                        else if (pi.PropertyType.FullName.ToLower().Contains("bool"))
                        {
                            bool iTemp = false;
                            if (bool.TryParse(Request[name], out iTemp))
                            {
                                pi.SetValue(_t, iTemp);
                            }
                        }
                        else
                        {
                            pi.SetValue(_t, Request[name]);
                        }
                        haveValuePINum++;
                    }
                    else if (name == "CreateTime" || name == "ModifyTime" || name == "UpdateTime")
                    {
                        pi.SetValue(_t, DateTime.Now);
                    }
                    else if (name == "Creator" || name == "Updater")
                    {
                        pi.SetValue(_t, UserTokenManager.GetUId(Request["token"]));
                    }
                    else if (name.ToUpper() == "ORGANID")
                    {
                        pi.SetValue(_t, Request["MYORGANID"]);
                    }
                }
            }
            if (haveValuePINum <= minValuePINum)
            {
                return(default(T));
            }
            return(_t);
        }