WinForm开发框架【细化权限至操作按钮】
有不少园友经常问我程序有没有更新,真的很抱歉,最近因为工作原因一直很忙,导致程序有很长时间都没有更新了,首先在这里感谢关心俺的朋友们。
这几天好好看了一下原来的程序,还有很多地方需要改进,比如操作数据库的方式、权限、报表等等,数据库与报表下一步逐步进行更新,先将权限再细化一点儿,精确到操作按钮上面,本来想在菜单下面跟着添加按钮权限的,这样的话看上去直观一些,如下图所示:
但是在开发过程中遇到了几个比较棘手的问题,如果要整理出来的话改动的地方会很多,所以暂时我将按钮权限提出来了,当然这个功能是一模一样的,数据也都是从数据库提取出来的,只是在视觉上面感觉有点遗憾。
下图所示:当前用户对“菜单信息设置”只有查看的权限,没有其它操作权限,

现在给它分配操作的权限,如下图:

然后在页面的Load里面增加了以下代码:
/// <summary>
/// 根据权限列表里面的信息,来决定用户具体有哪些操作权限。
/// </summary>
void SetButton()
{
DataTable dt_SetButton = new DataTable();
dt_SetButton = new sys_RoleManager().GetUserRoleByUserID("", allenSingleton.UserID);
if (dt_SetButton.Rows.Count > )
{
DataTable dt_New = new DataTable();
dt_New = dt_SetButton.Clone();
//这一步其实可以直接从数据库查询出来,如果放在存储里面完成的话也需要另外添加一个FunctionName的参数
//所以就在程序里面从Table里面Select一下。
DataRow[] dr = dt_SetButton.Select("FunctionName='菜单资料设置'");
for (int i = ; i < dr.Length; i++)
{
dt_New.ImportRow((DataRow)dr[i]);
} if (dt_New.Rows[]["AddID"].ToString() != "")
{
this.tsCreate.Enabled = true;
}
if (dt_New.Rows[]["DeleteID"].ToString() != "")
{
this.tsDelete.Enabled = true;
}
if (dt_New.Rows[]["UpdateID"].ToString() != "")
{
this.tsChange.Enabled = true;
}
if (dt_New.Rows[]["PrintID"].ToString() != "")
{
this.tsPrint.Enabled = true;
}
}
}
从下图可以看到当前用户已经可以对“菜单信息设置”进行删除和打印了

对应的操作ID都是保存在数据库,操作类型也是动态从数据库读取的。

最近事情太多了,等没这么忙了之后好好整理一下。
WinForm开发框架【细化权限至操作按钮】的更多相关文章
- Winform开发框架之权限管理系统改进的经验总结(4)-一行代码实现表操作日志记录
在前面介绍了几篇关于我的权限系统改进的一些经验总结,本篇继续这一系列主体,介绍如何一行代码实现重要表的操作日志记录.我们知道,在很多业务系统里面,数据是很敏感的,特别对于一些增加.修改.删除等关键的操 ...
- Winform开发框架之权限管理系统改进的经验总结(2)-用户选择界面的设计
在上篇总结随笔<Winform开发框架之权限管理系统改进的经验总结(1)-TreeListLookupEdit控件的使用>介绍了权限管理模块的用户管理部分,其中主要介绍了其中的用户所属公司 ...
- Winform开发框架之权限管理系统改进的经验总结(1)-TreeListLookupEdit控件的使用
最近一直在做一些技术性的研究和框架改进工作,博客也落下好几天没有更新了,也该是时候静下心来,总结这段时间的一些技术改进的经验了.和上一阶段的CRM系统开发和技术研究一样,我都喜欢在一个项目或者模块完成 ...
- Winform开发框架之权限管理系统的改进
权限管理系统,一直是很多Mis系统和一些常见的管理系统所需要的,所以一般可以作为独立的模块进行开发,需要的时候进行整合即可,不需要每次从头开发,除非特殊的系统需求.我在Winform开发框架介绍中的随 ...
- Winform开发框架之权限管理系统功能介绍
权限管理系统的重要特性总结: 1) 高度集成的权限系统.独立模块,能快速整合使用.2) 符合权限的国际通用标准,基于RBAC(基于角色的访问控制)的角色权限控制.3) 多数据库架构支持,内置支持Sql ...
- Winform开发框架之权限管理系统改进的经验总结(4)--用户分级管理
在实际的系统应用环境中,用户的分级管理一般也是比较常见的功能,小的业务系统可以不需要,但是一般涉及到集团.分子公司.或者是事业单位里面的各个处室或者某某局的人员管理,这些分级管理就显得比较必要,否则单 ...
- Winform开发框架之权限管理系统改进的经验总结(3)-系统登录黑白名单的实现
在一般的权限系统里面,可能经常会看到系统的黑名单或者白名单的拦截功能.在一般权限系统里面,常见的黑名单就是禁止用户在某些IP上登录系统,白名单就是允许用户只在某些IP上登录系统.本随笔主要介绍在我的权 ...
- Winform开发框架之权限管理系统
本文章转载:http://www.cnblogs.com/wuhuacong/archive/2011/05/08/2040620.html 至此,权限管理模块介绍已经完毕,下面给出一个调用例子Dem ...
- Winform开发框架之字段权限控制
在我的很多Winform开发项目中(包括混合框架的项目),统一采用了权限管理模块来进行各种权限的控制,包括常规的功能权限(按钮.菜单权限).数据权限(记录的权限),另外还可以进行字段级别的字段权限控制 ...
随机推荐
- 《机电传动控制》PLC仿真
1.红绿灯 经仿真,可以完成所设定的要求.对比普通的红绿灯,知识加了X25和X20的控制,来控制夜间模式 . 2.传送带 经仿真,可以完成所设定的要求. 总结:这两个仿真都是亲自完成,感觉难度有些大. ...
- openfire更改数据库
修改openfire安装目录下./conf/openfire.xml <setup>true</setup>中的true为false,重新启动,然后配置
- Centos 7 mysql Buffered warning: Changed limits: max_connections: 214 解决方法
Everytime I restart MySQL I have this warning: [Warning] Buffered warning: Changed limits: max_conne ...
- Windows Phone 十一、MVVM模式
MVVM 模式介绍 模型-视图-视图模型 (MVVM) 是一种用来分离 UI 和非 UI 代码的应用设计模式 MVVM – 模型(Model) MVVM 中的 Model 与 MVC 中的一致,用于封 ...
- .net post的参数如果出现乱码如何解决!
可以在webConfig里面添加 <system.web> <globalization requestEncoding="gb2312" responseEnc ...
- Hash工具下载地址
因为经常要在非常用电脑使用,这里放一个链接,方便下载: http://files.cnblogs.com/files/cxun/Hash.zip HASH计算工具,可计算MD5.SHA-1.CRC32 ...
- 在Ubuntu上安装有道词典
4月20日,由有道词典和Deepin团队共同完成的有道词典Linux版终于上线了,首先 推出Deepin和Ubuntu两个系统版本及其他版本的二进制包,估计以后还会有RPM 等版本.有道Linux版界 ...
- 解决Qualcomm Atheros AR8161 Gigabit Ethernet网卡Linux下坏掉的问题
我的戴尔(Dell)I2330R-168一体电脑的网卡在升级某个内核版本后,网卡就用一会儿就坏了 ifconfig eth0 eth0: flags=<UP,BROADCAST,RUNNING, ...
- oracle性能优化之表设计
数据库优化的目标无非是避免磁盘I/O瓶颈.减少CPU利用率和减少资源竞争.为了便于读者阅读和理解,笔者参阅了Sybase.Informix和Oracle等大型数据库系统参考资料,基于多年的工程实践经验 ...
- requirejs基础教程
一.初识requirejs 随着网站功能逐渐丰富,网页中的js也变得越来越复杂和臃肿,原有通过script标签来导入一个个的js文件这种方式已经不能满足现在互联网开发模式,我们需要团队协作.模块复用. ...