/// <summary>
 /// 操作执行前
 /// </summary>
 /// <param name="filterContext"></param>
 public override void OnActionExecuting(ActionExecutingContext filterContext)
 {
     try
     {
         base.OnActionExecuting(filterContext);
         Sys_Module module = SystemOperate.GetModuleByRequest(filterContext.HttpContext.Request);
         if (module == null)
         {
             string moduleName = filterContext.HttpContext.Request["moduleName"].ObjToStr();
             if (string.IsNullOrEmpty(moduleName))
             {
                 moduleName = filterContext.ActionParameters.ContainsKey("moduleName") ? filterContext.ActionParameters["moduleName"].ObjToStr() : string.Empty;
                 if (string.IsNullOrEmpty(moduleName))
                 {
                     Guid moduleId = filterContext.ActionParameters.ContainsKey("moduleId") ? filterContext.ActionParameters["moduleId"].ObjToGuid() : Guid.Empty;
                     opExecuteTime.ModuleName = moduleId != Guid.Empty ? SystemOperate.GetModuleNameById(moduleId) : string.Empty;
                 }
                 else
                 {
                     opExecuteTime.ModuleName = filterContext.HttpContext.Server.UrlDecode(moduleName);
                 }
             }
             else
             {
                 opExecuteTime.ModuleName = filterContext.HttpContext.Server.UrlDecode(moduleName);
             }
         }
         else
         {
             opExecuteTime.ModuleName = module.Name;
         }
         string controllerName = filterContext.RouteData.Values["controller"].ToString();
         string actionName     = filterContext.RouteData.Values["action"].ToString();
         opExecuteTime.ControllerName = controllerName;
         opExecuteTime.ActionName     = actionName;
         UserInfo currUser = UserInfo.GetCurretnUser(ApplicationObject.GetHttpContext(filterContext.HttpContext.Request));
         opExecuteTime.OpUserName = currUser.UserName;
         opExecuteTime.ClientIp   = WebHelper.GetClientIP(filterContext.HttpContext.Request);
         startTime = DateTime.Now;
     }
     catch { }
 }
 /// <summary>
 /// 获取httpContext对象
 /// </summary>
 /// <param name="request"></param>
 /// <returns></returns>
 public HttpContext GetHttpContext(HttpRequest request)
 {
     return(ApplicationObject.GetHttpContext(request));
 }
Exemplo n.º 3
0
        /// <summary>
        /// 获取网格HTML
        /// </summary>
        /// <param name="request">请求对象</param>
        /// <returns></returns>
        public static string GetGridHTML(HttpRequest request)
        {
            UserInfo currUser = UserInfo.GetCurretnUser(ApplicationObject.GetHttpContext(request));

            if (currUser == null)
            {
                return(GetAccountExpiredTipHtml());
            }
            #region 参数初始化
            Guid           moduleId         = UIOperate.GetModuleIdByRequest(request);                                        //模块Id
            Guid?          menuId           = request.Query.ContainsKey("mId") ? request.Query["mId"].ObjToGuidNull() : null; //菜单ID
            UIFrameFactory frameFactory     = UIFrameFactory.GetInstance(request);
            string         condition        = string.Empty;                                                                   //条件参数
            Guid?          viewId           = null;                                                                           //视图Id
            DataGridType   gridType         = DataGridType.MainGrid;
            string         initModule       = string.Empty;
            string         initField        = string.Empty;
            Dictionary <string, object> dic = null;                                                           //网格其他参数
            string page = request.Query["page"].ObjToStr();                                                   //页面类型
            condition = HttpUtility.UrlDecode(request.Query["condition"].ObjToStr());                         //条件参数
            viewId    = request.Query.ContainsKey("viewId") ? request.Query["viewId"].ObjToGuidNull() : null; //视图Id
            bool recycle = request.Query["recycle"].ObjToInt() == 1;                                          //是否回收站
            bool draft   = request.Query["draft"].ObjToInt() == 1;                                            //我的草稿
            gridType   = DataGridType.MainGrid;
            initModule = string.Empty;
            initField  = string.Empty;
            if (page == "fdGrid") //弹出网格
            {
                gridType = DataGridType.DialogGrid;
            }
            else if (page == "fwGrid") //列表页面明细或附属模块网格
            {
                gridType = DataGridType.FlowGrid;
            }
            else if (page == "inGrid") //网格内嵌入网格
            {
                gridType = DataGridType.InnerDetailGrid;
            }
            else if (page == "otGrid") //其他网格
            {
                gridType = DataGridType.Other;
            }
            else if (recycle) //回收站网格
            {
                gridType = DataGridType.RecycleGrid;
            }
            else if (draft) //我的草稿网格
            {
                gridType = DataGridType.MyDraftGrid;
            }
            if (gridType == DataGridType.DialogGrid)
            {
                initModule = HttpUtility.UrlDecode(request.Query["initModule"].ObjToStr());
                initField  = request.Query["initField"].ObjToStr();
            }
            //where条件语句
            string where = request.Query["where"].ObjToStr();
            if (!string.IsNullOrWhiteSpace(where))
            {
                try
                {
                    where = MySecurity.DecodeBase64(HttpUtility.UrlDecode(where)).ReplaceSpecialCharOfSQL();
                }
                catch
                {
                    where = string.Empty;
                }
            }
            //过滤字段
            List <string> filterFieldsList = null;
            string        filterFields     = request.Query["filterFields"].ObjToStr();
            if (!string.IsNullOrWhiteSpace(filterFields))
            {
                filterFieldsList = filterFields.Split(",".ToCharArray(), System.StringSplitOptions.RemoveEmptyEntries).ToList();
            }
            //提出网格参数
            if (request.Query.Keys.Where(x => x.StartsWith("p_")).Count() > 0)
            {
                dic = new Dictionary <string, object>();
                List <string> keys = request.Query.Keys.Where(x => x.StartsWith("p_")).Distinct().ToList();
                foreach (string key in keys)
                {
                    dic.Add(key, request.Query[key]);
                }
            }
            string mutiSelect = request.Query["ms"].ObjToStr(); //启用多选
            if (mutiSelect == "1")
            {
                if (dic == null)
                {
                    dic = new Dictionary <string, object>();
                }
                dic.Add("muti_select", true);
            }
            #endregion
            #region 权限判断
            if (gridType == DataGridType.MainGrid)
            {
                bool noVeryfyMenuPower = request != null && request.Query["nvm"].ObjToInt() == 1; //包含nvm=1时不验证菜单权限
                if (!noVeryfyMenuPower)                                                           //需要验证菜单权限
                {
                    bool hasPermission = menuId.HasValue && menuId.Value != Guid.Empty ? PermissionOperate.HasMenuPermission(currUser, menuId.Value) : PermissionOperate.HasModuleBrowerPermission(currUser, moduleId);
                    if (!hasPermission)
                    {
                        return("<div style=\"padding-top:20px;width:100%;text-align:center\"><font style=\"color:red;font-size:16px;font-weight:bold;\">您没有该模块数据的浏览权限!</font>");
                    }
                }
            }
            #endregion
            return(frameFactory.GetGridHTML(moduleId, gridType, condition, where, viewId, initModule, initField, dic, false, filterFieldsList, menuId, false, request));
        }