基于吉日嘎拉的通用权限管理Webform版老界面bug修复

虽然弄了新界面《基于吉日嘎底层架构的通用权限管理Web端UI更新:参考DTcms后台界面》,但老界面的一点菜单显示的问题还是让我这种强迫症揪心,终于今晚可以美美的睡觉了。

  老代码用了Session来控制顶部的菜单和左侧的菜单,原BaseUserControl.Permission.cs代码如下

//#region protected List<BaseModuleEntity> ModuleList 获取模块数据表
    ///// <summary>
    ///// 获取模块数据表
    ///// </summary>
    //public List<BaseModuleEntity> ModuleList
    //{
    //    get
    //    {
    //        lock (BaseSystemInfo.UserLock)
    //        {
    //            // 判断是否有数据,若没数据自动读取一次
    //            if (HttpContext.Current.Session == null || HttpContext.Current.Session["UserModuleList"] == null)
    //            {
    //                // 这里进行了菜单优化,出错问题
    //                this.GetModuleList();
    //            }
    //        }
    //        return Utilities.GetFromSession("UserModuleList") as List<BaseModuleEntity>;
    //    }
    //    set
    //    {
    //        Utilities.AddSession("UserModuleList", value);
    //    }
    //}
    //#endregion

    //#region protected void GetModuleList() 获模块列表
    ///// <summary>
    ///// 获模块列表
    ///// </summary>
    //protected void GetModuleList()
    //{
    //    lock (BaseSystemInfo.UserLock)
    //    {
    //        if (HttpContext.Current.Session == null || HttpContext.Current.Session["UserModuleList"] == null)
    //        {
    //            // 这个是默认的系统表名称
    //            DotNetService dotNetService = new DotNetService();
    //            ModuleList = dotNetService.PermissionService.GetPermissionListByUser(this.UserInfo, BaseSystemInfo.SystemCode, this.UserInfo.Id, string.Empty, true);
    //        }
    //    }
    //}
    //#endregion

    #region protected List<BaseModuleEntity> ModuleList 获取模块数据表
    /// <summary>
    /// 获取模块数据表
    /// </summary>
    public List<BaseModuleEntity> ModuleList()
    {
        //return this.GetModuleList();
        return Utilities.GetUserPermissionList(this.UserInfo, this.UserInfo.Id);
    }
    #endregion

现改为函数获取,统一使用Utilities.GetUserPermissionList中的Cache,抛弃Session。这样多个用户在同一台电脑切换登录的时候,顶部菜单和左侧菜单的显示就啥问题也没有了。

#region protected List<BaseModuleEntity> ModuleList 获取模块数据表
    /// <summary>
    /// 获取模块数据表
    /// </summary>
    public List<BaseModuleEntity> ModuleList()
    {
        //return this.GetModuleList();
        return Utilities.GetUserPermissionList(this.UserInfo, this.UserInfo.Id);
    }
    #endregion

昨天程序员节日,没顾上发表意见,今天补充一下:

1、作为程序员,扎实的英文基础还是很重要的,希望这是吉日嘎拉的手误。

2、用户用得爽,操作步骤少,速度快,记录准,操作灵活,省时省力,老板节约成本、提交效率、钱赚的更多,管你用啥高深技术还是最新的技术!

 

posted @ 2016-10-25 19:36  troy.cui  阅读(1703)  评论(0编辑  收藏  举报