虽然弄了新界面《基于吉日嘎底层架构的通用权限管理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. 如何应用Font Awesome矢量字体图标

    Font Awesome 是一套专门为 Twitter Boostrap 设计的图标字体库.这套图标字体集几乎囊括了网页中可能用到的所有图标,除了包括 Twitter Boostrap 的默认图标外, ...

  2. Java用来进行批量文件重命名,批量提取特定类型文件

    原因: 因为在网上下载视频教程,有的名字特别长,一般都是机构或者网站的宣传,不方便直接看到视频的简介,所以做了下面的第一个功能. 因为老师发的课件中,文件夹太多,想把docx都放在同一个文件夹下面,一 ...

  3. javascript获取表单值的7种方式

    见代码: <!doctype html> <html lang="en"> <head> <meta charset="UTF- ...

  4. redis基本配置和相关设置

    redis-cli:the redis command line interface command line usage: $redis-cli incr mycounter 输出的结果只会显示在终 ...

  5. salesforce 零基础学习(十九)Permission sets 讲解及设置

    Permission sets以及Profile是常见的设置访问权限的方式. Profile规则为'who see what'.通过Profile可以将一类的用户设置相同的访问权限.对于有着相同Pro ...

  6. iOS-数据持久化-SQlite3

    SQLite3简单介绍 1.ios中数据的存储方式 (1)Plist(NSArray\NSDictionary) (2)Preference(偏好设置\NSUserDefaults) (3)NSCod ...

  7. Django的Model上都有些什么

    Django的Model上都有些什么 modelinfo= ['DoesNotExist', 'MultipleObjectsReturned', '__class__', '__delattr__' ...

  8. WebClient.DownloadFile(线程机制,异步下载文件)

    线程机制(避免卡屏),异步下载文件. 我做网站的监控,WebClient.DownloadFile这个方法是我经常用到的,必要的时候肯定是要从网上下载些什么(WebRequest 也可以下载网络文件, ...

  9. 冒泡排序java代码

    冒泡排序就是依次取出最大数,然后依次交换放到数组最后边. 直观写法: public long[] sort(long[] a){ int n = a.length - 1; // Step:1 选出最 ...

  10. Kubernetes如何使用kube-dns实现服务发现

    大纲: •       Kubernetes中如何发现服务 •       如何发现Pod提供的服务 •       如何使用Service发现服务 •       如何使用kube-dns发现服务 ...