ASP.NET经典权限解决方案,适用于OA、CRM、ERP、HR等应用系统
2017-12-27 14:45
806 查看
经典权限解决方案
1.权限简介一般的管理系统都需要对用户的操作进行一定的限制,有的用户可以有许多操作,有的则有少量的操作.这样就需要一个授权机制,基于角色的授权机制描述了某个角色拥有一定数量的操作授权,属于该角色的用户则也就拥有了该角色的权限,且若用户属于多个角色则其拥有多个角色权限的集合.
我们的权限精确到按钮级别,如共享文档管理,管理可以查询、上传文档、下载文档、删除文档等操作,而一般的用户只需要查询和下载文档就可以了,
这时候我们的权限管理就发挥了作用, 下面让我们一步步开始实现!
我们使用ASP.NET结合jQuery、EasyUI实现一个精典的权限管理机制
2.数据模型设计
数据模型包括:员工表,角色表,员工与角色关系表和角色权限表
员工表: 员工登录到系统,如下图
角色表:授权权限的集合对象,如下图
角色表与员工关系表:如下图
角色权限表:如下图
3.Action定义
用户对应某功能的操作(如:增\删\改\查)需要一一建立相应操作行为实例(Action),这里以”文档管理”为例: 变量代表文档管理中的单个操作,例如 Directory_add = “j”;代表添加文档操作,其他各操作定义如下:
public static string Directory_browse = "i";//文档浏览操作 public static string Directory_add = "j";//文档浏览添加 public static string Directory_update = "k";//文档浏览修改 public static string Directory_delete = "l";//文档浏览删除
定义文档操作Action: 每个Action有标题(text)、图标(iconCls)、处理函数(handler),如下:
/// <summary> /// 文档操作Action /// </summary> public class DocActions { public static ToolbarItem Query = new ToolbarItem() { text = "查询", iconCls = "icon-search", handler = "oa.os.doc.onBtnQueryDocClick" }; public static ToolbarItem Refresh = new ToolbarItem() { text = "刷新", iconCls = "icon-reload", handler = "oa.os.doc.onBtnRefreshDocClick" }; public static ToolbarItem Upload = new ToolbarItem() { text = "上传文档", iconCls = "icon-add", handler = "oa.os.doc.onBtnUploadDocClick" }; public static ToolbarItem Update = new ToolbarItem() { text = "编辑", iconCls = "icon-application_edit", handler = "oa.os.doc.onBtnEditDocClick" }; public static ToolbarItem Delete = new ToolbarItem() { text = "删除", iconCls = "icon-delete", handler = "oa.os.doc.onBtnDelDocClick" }; }
4.给角色授权, 结合EasyUI数据表格组件,效果如下图
勾选复选框就表示为该角色授权其他的操作
权限目录树的初始化,如下(在AppPermission.cs类)
/// <summary> /// 初始化权限目录树 /// </summary> /// <returns></returns> private static PermTreeNode[] CreatePermission() { PermTreeNode[] nodes = new PermTreeNode[]{ new PermTreeNode() { Name = "系统权限",Id="", children = new PermTreeNode[]{ new PermTreeNode() { Name = "个人办公", children=new PermTreeNode[]{ new PermTreeNode() { Name = "个人考勤", Action1 = new PermAction() { Name = "个人考勤管理", Action = AppAction.PunchInOut } }, new PermTreeNode() { Name = "工作日志", Action1 = new PermAction() { Name = "工作日志管理", Action = AppAction.WorkLog } } } }, new PermTreeNode() { Name = "人事管理", children=new PermTreeNode[]{ new PermTreeNode() { Name = "部门管理", Action1 = new PermAction() { Name = "添加", Action = AppAction.Department_add }, Action2 = new PermAction() { Name = "编辑", Action = AppAction.Department_update }, Action3 = new PermAction() { Name = "删除", Action = AppAction.Department_
相关文章推荐
- ASP.NET经典权限解决方案,适用于OA、CRM、ERP、HR等应用系统
- 微通道对接ERP、CRM、OA、HR、SCM、PLM和其他管理系统解决方案
- 分享一个全开源的ASP.NET快速开发平台,能快速开发OA CRM ERP 等系统
- 微信对接ERP、CRM、OA、HR、SCM、PLM等管理系统解决方案
- ASP.NET 权限管理 页面静态化 OA系统培训 三层架构
- ABP+AdminLTE+Bootstrap Table权限管理系统第一节--使用ASP.NET Boilerplate模板创建解决方案
- ABP+AdminLTE+Bootstrap Table权限管理系统第一节--使用ASP.NET Boilerplate模板创建解决方案
- Silverlight管理系统源码(用于开发ERP、OA、CRM、HR、进销存、财务等系统之用)
- 一起谈.NET技术,关于大型ASP.NET应用系统的架构—如何做到高性能高可伸缩性
- 【转载】关于大型asp.net应用系统的架构—如何做到高性能高可伸缩性
- ASP.NET MVC程序权限控制解决方案(一)
- ExtAspNet应用技巧(十四) - 系统设置
- OA、CRM、ERP、BPM系统
- 如何在ASP.NET大型应用系统的模块化开发实现多版本程序集并存支持[转载]
- 关于大型asp.net应用系统的架构 —— 架构的选择[转]
- 【商业版】2010年ASP.NET C#通用权限管理系统组件源码销售100套以上的经验总结【2011年配套源码要涨价了】
- Asp.Net Core 项目实战之权限管理系统(0) 无中生有
- Log4net 框架系列:log4net日志文件在asp.net中的应用实例-记录系统错误
- 转载:ASP.NET系统用户权限在.NET中的设计与实现
- CRM系统与ERP系统管理的集成应用分析