一步步教你如何用疯狂.NET架构中的通用权限系统 -- 在页面中的调用讲解

本文提供了一种复杂的权限系统设计思路,包括定义权限变量、获取权限、配置权限等步骤,并探讨了前台与后台权限映射的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

以下讲解是按最复杂的情况,讲解权限的要用法,若页面上不需要判断那么多,那么复杂的权限,那也不用搞得这么复杂,简单才是硬道理。

第一步: 首先需要在你需要用的页面里,把权限变量定义好,说俗点儿,就是你这个页面能用到哪些权限定义,都分哪几个权限,这些都事先定义好了,后面也好开展工作,很可能一个页面只需要一个权限,也可能需要需要10个权限,我并不认同,每个页面都是添加、删除、修改权限,有可能是这样,但是还有部分情况下不只是这些功能。





第二步:写上标准的GetPermission()函数,在这个函数里,调用this.Authorization()函数,将当前用户的相关权限获得,为接着按这些权限的处理工作做好准备。 



第三步:在页面的FormOnLoad事件中,调用获取权限的函数,这样这个页面在加载时,就可以调用这个函数了。



第四步:(这步可以省略)若想做配置得很灵活,就可以把页面中判断的权限,做一个配置文件,就是映射前台判断函数与后台权限的,一下图片中 8个页面上的权限判断,统一映射到后台是一个权限配置项目“UserAdmin”这个权限设置。




第五步:在后台配置好,我系统到底有哪些权限项目,进行授权,你可以做比较细的权限配置项目,也可以做一个比较粗的权限配置,可以将页面上进行了很细的控制进行对对一的映射,这样客户需要比较粗的权限控制,你就可以做个粗放的,客户需要细腻的权限控制,你就做个很细腻的权限控制,可以根据客户的需要灵活进行定义。

 

总结:
其实从严格的意义来讲,我们做事情的思路都是很凌乱的,先想到哪里做到哪里,碰到问题了,再解决问题,其实是先配置规划权限,然后再把前台程序员开发的权限与配置库进行一个匹配,理论上是这样做才对,但是实际工作往往比理论状态残酷很多,谁都会懒得写配置文件,懒得调整来调整去,前台是什么权限,直接就在后台也加一个这个权限,往往会变成一对一的权限对应关系。所以你设计的权限系统,又需要满足最理想的理论状态,又需要满足最残酷的实际情况。

设计逻辑图说明:

前台权限与后台权限设置,可以有2个途径,一个直接映射到后台设计,另一个是通过权限映射表,周转一下,可以把权限配置得更灵活一些。

有疑问请留言,有兴趣请留言,有写错的地方,欢迎指点批评。

导读:
疯狂.NET架构通用权限后台管理工具演示版2.0下载
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 如何控制用户显示的菜单权限
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 在页面中的调用权限讲解
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 分级管理
疯狂.NET 通用权限设计 C/S后台管理,B/S前台调用源码样例程序源码下载之 --- 操作权限
疯狂.NET 通用权限设计 C/S后台管理,B/S前台调用源码样例程序源码下载之 --- 角色权限
疯狂.NET 通用权限设计 C/S后台管理,B/S前台调用源码样例程序源码下载之 --- 数据集权限

淘宝店地址:
http://list.taobao.com/browse/0/n-8ddf3d8a90550373fa749337efe29f03---------------40--commend-0-all-0.htm



将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。

posted on 2009-07-20 18:43 不仅仅是通用权限设计 阅读(3804) 评论(6) 编辑 收藏

#1楼   回复  引用     那字段级别的权限控制以及一些和业务相关很强的,如部门领导可以看到的和部门的同事看到的是不一样的,字段又不一样,这样的设计还能通用吗,请吉老大指点下,越详细越好,多谢啦!

2009-07-22 17:25 | 8888866666[未注册用户]

#2楼  回复 引用 查看   

那肯定不能呀!
2009-08-19 15:45 | 淘者天下2       

#3楼  回复 引用 查看   

"可以将页面上进行了很细的控制进行对对一的映射"--"对对一"--"多对一"
2010-02-26 08:40 | Orange_jyc       

#4楼  回复 引用 查看   

请教一个问题,假如我对用户角色进行菜单授权后,A用户属于A角色能操作(看到)的菜单是a,b,c3个,由于页面是否访问只判断了用户的session是否存在就可以访问,那么如果这个A用户知道了系统其他有效菜单的链接的菜单,那么他就可以继续操作了。我暂时用到的解决办法是这样的:当对角色进行菜单授权是,记录了菜单的链接,那么页面在被请求是,只需要验证这个角色对应的菜单路径中是否包含当前链接就解决这个问题了,但是后来又出现一个问题了,因为对角色进行菜单授权时,比如一个“用户管理”的菜单链接里面包含了新增,编辑等页面,那么如果还是对“用户管理”菜单进行授权的话,显示还是可能出现这类问题,所以我想请教下是否还有其他更好的办法。 当然我把这个问题写出来后,觉得这种做法也还是可以做的 呵呵 是在是没想到更好的办法了。
2010-03-26 09:11 | yanghao       

#5楼  回复 引用 查看   

如果在这里权限变量做成一个自定义控件,获得权限做在控件里面.我的权限系统就是这样做的,减少代码量.小小意见,供参考.
2010-04-22 10:58 | JackPeng       

#6楼  回复 引用 查看   

不错。要是图再详细点就好了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值