Пример #1
0
 /// <summary>
 /// 获取本逻辑类单例
 /// </summary>
 /// <returns></returns>
 public static MenuInfoBll GetInstence()
 {
     if (_MenuInfoBll == null) {
         _MenuInfoBll = new MenuInfoBll();
     }
     return _MenuInfoBll;
 }
 /// <summary>
 /// 获取本逻辑类单例
 /// </summary>
 /// <returns></returns>
 public static MenuInfoBll GetInstence()
 {
     if (_MenuInfoBll == null)
     {
         _MenuInfoBll = new MenuInfoBll();
     }
     return(_MenuInfoBll);
 }
 /// <summary>
 /// 根据菜单Url地址,获取菜单相应内容
 /// </summary>
 /// <param name="menuInfoUrl">页面地址</param>
 /// <returns>返回菜单实体</returns>
 public MenuInfo GetMenuInfo(string menuInfoUrl)
 {
     try
     {
         //从全局缓存中读取菜单内容
         //获取菜单实体
         return((MenuInfo)(MenuInfoBll.GetInstence().GetHashtable()[menuInfoUrl]));
     }
     catch (Exception)
     {
         return(new MenuInfo());
     }
 }
Пример #4
0
        /***********************************************************************
        * 自定义函数                                                          *
        ***********************************************************************/
        #region 自定义函数

        #region 添加用户操作日志
        /// <summary>
        /// 添加用户操作日志
        /// </summary>
        /// <param name="page">页面指针</param>
        /// <param name="useLogOccurrence">用户操作内容备注,{0}=用户名称,{1}=当前页面名称</param>
        public void Save(Page page, string useLogOccurrence)
        {
            try
            {
                //创建用户操作日志对象
                var uselog = new UseLog();
                //记录登录时间
                uselog.AddDate = DateTime.Now;
                //当前用户ID
                uselog.Manager_Id = OnlineUsersBll.GetInstence().GetManagerId();
                //当前用户名称
                uselog.Manager_CName = OnlineUsersBll.GetInstence().GetManagerCName();
                //当前页面ID
                var menu = MenuInfoBll.GetInstence().GetMenuInfo(page.Request.Url.AbsolutePath);
                if (menu == null)
                {
                    uselog.MenuInfo_Id = 0;
                }
                else
                {
                    uselog.MenuInfo_Id = menu.Id;
                    //当前页面名称
                    uselog.MenuInfo_Name = menu.Name;
                }

                //判断是否为首页
                if (uselog.MenuInfo_Id == 0)
                {
                    if (page.Request.Url.AbsolutePath.Equals("/WebManage/Main.aspx"))
                    {
                        //当前页面名称
                        uselog.MenuInfo_Name = "首页";
                    }
                }

                //当前用户IP
                uselog.Ip = IpHelper.GetUserIp();

                //操作内容
                uselog.Notes = StringHelper.FilterSql(String.Format(useLogOccurrence, uselog.Manager_CName, uselog.MenuInfo_Name));
                //插入记录
                uselog.Save();
            }
            catch (Exception e)
            {
                //记录日志
                CommonBll.WriteLog("添加用户操作日志时出现异常", e);
            }
        }
Пример #5
0
        /// <summary>
        /// 添加用户访问页面记录
        /// </summary>
        public static void UserRecord(Page page)
        {
            //检查用户是否存在
            OnlineUsersBll.GetInstence().IsTimeOut();

            //获取当前用户的编号
            var userHashKey = OnlineUsersBll.GetInstence().GetUserHashKey();

            //获取当前页面名称
            var menuName = "";
            //取得当前页面实体
            var menu = MenuInfoBll.GetInstence().GetMenuInfo(page.Request.Url.AbsolutePath);

            if (menu != null)
            {
                menuName = menu.Name;
            }
            //判断是否为首页
            if (string.IsNullOrEmpty(menuName))
            {
                if (page.Request.Url.AbsolutePath.Equals("/WebManage/Main.aspx"))
                {
                    //当前页面名称
                    menuName = "首页";
                }
            }

            //更新当前用户所在页面路径
            OnlineUsersBll.GetInstence().UpdateUserOnlineInfo(userHashKey, OnlineUsersTable.CurrentPage, page.Request.Url.AbsolutePath);
            //更新当前用户所在页面名称
            OnlineUsersBll.GetInstence().UpdateUserOnlineInfo(userHashKey, OnlineUsersTable.CurrentPageTitle, menuName);
            //同步更新数据库
            //设置需要更新的字段
            var dic = new Dictionary <string, object>();

            dic.Add(OnlineUsersTable.CurrentPage, page.Request.Url.AbsolutePath);
            dic.Add(OnlineUsersTable.CurrentPageTitle, menuName);
            //设置更新条件
            var wheres = new List <ConditionFun.SqlqueryCondition>();

            wheres.Add(new ConditionFun.SqlqueryCondition(ConstraintType.And, OnlineUsersTable.UserHashKey, Comparison.Equals, userHashKey));
            //更新
            OnlineUsersBll.GetInstence().UpdateValue(page, dic, wheres, "", true, false);

            //添加用户访问记录
            UseLogBll.GetInstence().Save(page, "{0}进入了【{1}】页面");
        }
Пример #6
0
        /// <summary>
        /// 添加用户访问页面记录
        /// </summary>
        public static void UserRecord(Page page)
        {
            //获取当前用户的编号
            var userHashKey = OnlineUsersBll.GetInstence().GetUserHashKey();

            //获取当前页面名称
            var menuName = "";
            //取得当前页面实体
            var menu = MenuInfoBll.GetInstence().GetMenuInfo(page.Request.Url.AbsolutePath);

            if (menu != null)
            {
                menuName = menu.Name;
            }
            //判断是否为首页
            if (string.IsNullOrEmpty(menuName))
            {
                if (page.Request.Url.AbsolutePath.Equals("/WebManage/Main.aspx"))
                {
                    //当前页面名称
                    menuName = "首页";
                }
            }

            //更新当前用户所在页面路径
            OnlineUsersBll.GetInstence()
            .UpdateUserOnlineInfo(userHashKey, OnlineUsersTable.CurrentPage, page.Request.Url.AbsolutePath);
            //更新当前用户所在页面名称
            OnlineUsersBll.GetInstence().UpdateUserOnlineInfo(userHashKey, OnlineUsersTable.CurrentPageTitle, menuName);

            //同步更新数据库与缓存
            //获取在线用户Id
            var id = OnlineUsersBll.GetInstence().GetOnlineUsersId();

            if (id > 0)
            {
                //更新
                OnlineUsersBll.GetInstence()
                .UpdateValue(page, id, OnlineUsersTable.CurrentPage, page.Request.Url.AbsolutePath,
                             OnlineUsersTable.CurrentPageTitle, menuName, "", true, false);
            }

            //添加用户访问记录
            UseLogBll.GetInstence().Save(page, "{0}进入了【{1}】页面");
        }