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开发项目中(包括混合框架的项目),统一采用了权限管理模块来进行各种权限的控制,包括常规的功能权限(按钮.菜单权限).数据权限(记录的权限),另外还可以进行字段级别的字段权限控制 ...
随机推荐
- servlet的匹配规则,兼谈/与/*
客户端通过URL地址访问服务器(servlet容器)资源,所以servlet若要能对外提供服务,必须要将程序按照java规范将其映射到对应的URL上,映射的规则是需要开发人员在WEB.XML中显示指定 ...
- 深入了解DSP与ARM的区别与联系
http://www.eeboard.com/bbs/thread-25219-1-1.html ARM微处理器的体系结构 了解DSP的体系结构 深入了解DSP与ARM的区别与联系 2011-09-3 ...
- Timus 2068. Game of Nuts 解题报告
1.题目描述: 2068. Game of Nuts Time limit: 1.0 secondMemory limit: 64 MB The war for Westeros is still i ...
- Java类的基本运行顺序是怎样
我们以下面的类来说明一个基本的 Java 类的运行顺序: public class Demo{ private String name; private int age; public Demo(){ ...
- centos 配置 ssl服务
使用的是appach 2.4.10 版本 各个版本配置不同 1.首先修改httpd.conf 文件 appach 安装目录下的 conf文件夹中找到 #LoadModule socache_shmcb ...
- push or get File or Folder using scp wrapped with expect and bash
经常需要把服务器的某些文件传到 Mac,或者获取 Mac 的一些文件到服务器.尽管有很多命令scp, ftp, rsync都可以,霸特每次都有敲好长的命令,好烦,而且还要输入密码.所以想着 wrap ...
- MyBatis foreach标签遍历数组
有时候开发中需要根据多个ID去查询,可以将ID封装为List或者数组然后使用MyBatis中的foreach标签构建in条件. 这里我将ID封装为String[]作为参数. <select id ...
- 【转载】Log4j详细使用教程
本文由林炳文Evankaka创作,出处http://blog.csdn.net/evankaka 日志是应用软件中不可缺少的部分,Apache的开源项目Log4j是一个功能强大的日志组件,提供方便的日 ...
- SQL Server 在task manager里面显示CPU 使用率过高
发现一篇好文章 https://mssqlwiki.com/2012/10/04/troubleshooting-sql-server-high-cpu-usage/
- mysql登陆问题
1.centos6下mysql5.7的登陆问题 问题的描述:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using p ...