虽然弄了新界面《基于吉日嘎底层架构的通用权限管理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、用户用得爽,操作步骤少,速度快,记录准,操作灵活,省时省力,老板节约成本、提交效率、钱赚的更多,管你用啥高深技术还是最新的技术!

基于吉日嘎拉的通用权限管理Webform版老界面bug修复的更多相关文章

  1. 基于吉日嘎拉的通用权限管理WebForm版扩展:字典选项管理和缓存管理

    关于字典管理,其实就是2个表,一个表记录字典和对应表,另一个表记录字典内容.我这里改名为字典选项,其实是一个意思.直接上图: 这里的字典选项是分子系统的,每个子系统可以有自己的单独字典,方便管理.但是 ...

  2. 基于吉日嘎底层架构的通用权限管理Web端UI更新:参考DTcms后台界面

    经一周的研究学习,看了国内的H+.HUI等,国外的PaperDashboardPro.Make.Metronic BootStrap等,最终选定用一个轻量的,适合中国人的,来自DTcms的后台管理UI ...

  3. 基于RBAC设计的通用权限管理框架

    RoadFlow拥有基于RBAC设计的通用权限管理框架.不仅可以基于角色组进行菜单授权,还可以根据组织架构中部门.岗位.人员等进行细分的权限管理分配. 如果一个人有重复菜单权限,则将自动合并. 系统资 ...

  4. [转]Asp.Net大型项目实践(11)-基于MVC Action粒度的权限管理【续】【源码在这里】(在线demo,全部源码)

    本文转自:http://www.cnblogs.com/legendxian/archive/2010/01/25/1655551.html 接上篇Asp.Net大型项目实践(10)-基于MVC Ac ...

  5. winform快速开发平台 -> 通用权限管理之动态菜单

    这几个月一直忙APP的项目,没来得及更新项目,想想该抽出时间整理一下开发思路,跟大家分享,同时也希望得到宝贵的建议. 先说一下我们的权限管理的的设计思路,首先一个企业信息化管理系统一定会用到权限管理, ...

  6. 【原创】C#通用权限管理-程序安全检查,这些你一定要考虑到位

    接触通用权限已经一年,现在使用已经很熟练,分享通用权限管理下面的一些好的开发思想. 安全漏洞对于一个小项目来说,可能不是特别的重视,对于一个大项目来说,这是特别重要需要注意的,特别是在项目开发中的就要 ...

  7. EASYUI+MVC4通用权限管理平台--前言

    经过多年的管理信息系统的开发工作,吸取了工作中遇到的一些问题,经过自己的总结,形成了一套比较完整的管理信息系统的通用权限管理基础开发平台. 在软件的开发过程中我们首先需要解决的是UI问题,其次是浏览器 ...

  8. EASYUI+MVC4通用权限管理平台

    通用权限案例平台在经过几年的实际项目使用,并取得了不错的用户好评.在平台开发完成后,特抽空总结一下平台知识,请各位在以后的时间里,关注博客的更新. 1.EASYUI+MVC4通用权限管理平台--前言 ...

  9. C#通用权限管理-程序安全检查,这些你一定要考虑到位

    接触通用权限已经一年,现在使用已经很熟练,分享通用权限管理下面的一些好的开发思想. 安全漏洞对于一个小项目来说,可能不是特别的重视,对于一个大项目来说,这是特别重要需要注意的,特别是在项目开发中的就要 ...

随机推荐

  1. excel表格中如何将内容粘贴到筛选后的可见单元格[转]

    默认情况下,筛选后excel表格进行复制粘贴,会贴到隐藏的表格. 可以添加两个辅助列来完成操作:1.在筛选前在表格右边添加"辅助1"列,在第二行输入1,按Ctrl+鼠标左键往下拉到 ...

  2. [Java面试十]浏览器跨域问题.

    此块内容参考Ajax文档部分. 主要复习内容:     1.JavaScript核心对象     2.浏览器BOM对象     3.文档对象模型DOM     4.常见事件     5.Ajax编程( ...

  3. vagrant homestead laravel 编程环境搭建

    这里面其实坑不少的,首先介绍 VirtualBox  虚拟机,windows下安装linux必须用的一个工具 vagrant 封装虚拟机的一个软件,可以设置好系统,安装好软件,什么时候用,直接导入就行 ...

  4. salesforce 零基础开发入门学习(十四)salesforce中工厂模式的运用

    提到工厂模式,想必大家都很熟悉,工厂模式作为一种设计模式,同样在salesforce中适用. 举一个例子,笔作为基类,可以有钢笔,铅笔,圆珠笔等等.有一个笔的工厂,当你向它要钢笔,它就会生产一支钢笔; ...

  5. Java基本特征 - 多态

    多态的实现方式: 1. 重载(overload):实现编译时的多态性,前绑定 同一个类中.方法名相同.参数类型或者参数数量不相同 重写(override):运行时的多态性,后绑定.运行时的多态,是面向 ...

  6. StringUtils 的用法

    1.public static boolean isEmpty(String str) 判断某字符串是否为empty,标准是 null == str 或 str.length() == 0 2.pub ...

  7. 【WP8.1开发】选择与搜索联系人

    在需要的情况下,可以通过相关的API来访问手机上的联系人信息:当然,在不必要的情况下,不要随便去获取别人的数据. 要从联系人列表中选择并获取一位或者N位联系人的详细信息,比较简单的做法是利用Conta ...

  8. Android 自定义View及其在布局文件中的使用示例(二)

    转载请注明出处 http://www.cnblogs.com/crashmaker/p/3530213.html From crash_coder linguowu linguowu0622@gami ...

  9. codeforces B. Pasha and String(贪心)

    题意:给定一个长度为len的字符序列,然后是n个整数,对于每一个整数ai, 将字符序列区间为[ai,len-ai+1]进行反转.求出经过n次反转之后的序列! /* 思路1:将区间为偶数次的直接去掉!对 ...

  10. Hadoop阅读笔记(一)——强大的MapReduce

    前言:来园子已经有8个月了,当初入园凭着满腔热血和一脑门子冲动,给自己起了个响亮的旗号“大数据 小世界”,顿时有了种世界都是我的,世界都在我手中的赶脚.可是......时光飞逝,岁月如梭~~~随手一翻 ...