1、WEB管理系统中用户权限管理设计和实现 摘要:网络信息管理系统中数据安全和用户操作权限是很关键。本文针对部分信息管理系统用户管理模块提出了作者思绪和实现方法。含有一定参考价值观。 关键词:信息管理系统;用户管理;权限 一、引言 信息管理系统中数据安全是很关键,那基于WEB多用户信息管理系统中数据安全问题就显得更为关键,其中每个用户操作权限就必需由管理员依据工作需要来设置好,实现对于不一样用户登录系统以后出现不一样导航菜单。在实际开发过程中,因为有些企机关管理对于用户角色和权限划分不是太明确,所以对于这部分系统用户我采取了由管理员给每个用户动态添加对应功效,在用户登录时动态生成系统导航,
2、这么每个用户登录后只能进行管理员所给予操作。 二、数据库表设计 因为系统是在网络环境中运行,而且是多用户,不一样用户可能享受不一样操作权限,而且用户操作权限可能在随岗位或其它原因需要改变。为了系统安全,要求不一样用户登录以后只能看到自己所能进行操作,而且整个系统用户角色又不是那么显著。基于这么情况,为完成用户管理,设计了以下数据表: 用户信息表(userinfo) 列名 数据类型 长度 是否NULL 列含义 备注 ID char 4 Not null 用户编号 主键 DepartmentID varchar 50 Not null 所在部门 T
3、rueUserName varchar 50 Not null 实名 PassWord varchar 50 Not null 口令 LastLoginTime smalldatetime 4 NUll 登录时间 LastLogoutTime smalldatetime 4 NUll 退出时间 LoginTimes int 4 Not null 登录次数 默认0 UserLoginIP nvarchar 50 NUll 登录IP OnLine bit 1 NUll 是否在线 功效表 列名
4、数据类型 长度 是否NULL 列含义 备注 功效id nvarchar 6 Not null 功效编号 主键 功效名称 nvarchar 50 Not null 导航标题 文件名 nvarchar 50 Not null 超链文件 分类 nvarchar 50 Not null 功效分类名称 用户权限表 列名 数据类型 长度 是否NULL 列含义 备注 用户id char 4 Not null 用户编号 功效id nvarchar 6 Not null 功效编号 二、功效模块设
5、计示意图(图1) 用户基础信息 用户权限分配 用户信息浏览 用户添加 用户修改 用户 删除 用户 密码修改 用户功效分配 用户功效移除 用户管理 图1 用户管理功效模块示意图 三、功效实现 1.对于用户基础信息管理分别用不一样页面来实现用户信息增加、删除、修改和用户密码修改。 2.用户权限分配管理采取一个页面,由分配和移除功效来实现。操作界面图2: 图2 用户权限管理界面 设计时各关键控件ID列表 控件 控件ID 方法 选择用户组合框 DropDownList1 未分配权限GridView GridView2
6、已分配权限GridView GridView1 分配按钮 Button1 Button1_Click 移除按钮 Button2 Button2_Click 实现思绪是:管理员登录后选择用户管理功效下用户权限分配功效,在弹出页面上首先选择要分配权限用户,然后分别采取GridView显示选中用户未分配权限和分配权限,在未分配权限中选择要分配给选中用户功效,然后点分配按钮,所选中功效就会出现在已分配权限 GridView中;在已分配权限中选择要移除权限,然后点移除按钮,所选中功效就会出现在未分配权限 GridView中;由图2能够很显著地看出每个用户所拥有权限功效。 四、各关键
7、功效实现方法: 1.未分配权限GridView数据绑定 在数据库功效表中查找目前用户所不含有操作功效,然后将所得数据集中信息绑定到未分配权限GridView中。具体过程以下: protected void gridview2bind() { WebService webs = new WebService(); DataTable ds = new DataTable(); string userid = DropDownList1.SelectedValue.ToString(); ds = webs.ExcuteSelec
8、t("SELECT 功效id,分类,功效名称 FROM 功效表 where 功效id not in (select 功效id from 用户权限表 where 用户id=" + userid + ")"); if (ds.Rows.Count == 0) { Button1.Visible = false; } else { Button1.Visible = true; } GridView2.DataSource = ds; GridView2.DataBind();
9、 } 2.已分配权限GridView数据绑定 在数据库功效表中查找目前用户所含有操作功效,然后将所得数据集中信息绑定到已分配权限GridView中。具体过程以下: protected void gridview1bind() { WebService webs = new WebService(); DataTable ds = new DataTable(); string userid = DropDownList1.SelectedValue.ToString(); ds = webs.Excute
10、Select("SELECT 功效id,分类,功效名称 FROM 功效表 where 功效id in (select 功效id from 用户权限表 where 用户id=" + userid + ")"); if (ds.Rows.Count == 0) { Button2.Visible = false; } else { Button2.Visible = true; } GridView1.DataSource = ds; GridView1.DataBind();
11、} 3. 将在未分配权限GridView中所选择权限分配给用户 逐项检验未分配权限GridView中全部选项,假如被选择,那么就将此功效添加给目前用户,不然继续检验下一项,直到检验完全部选项。具体过程以下: protected void Button1_Click(object sender, EventArgs e) { string userid = DropDownList1.SelectedValue.ToString(); WebService webs = new WebService(); for (int i =
12、0; i <= GridView2.Rows.Count - 1; i++) { CheckBox cbox = (CheckBox)GridView2.Rows[i].FindControl("CheckBox1"); if (cbox.Checked == true) { webs.ExcuteSql("insert into 用户权限表(用户id,功效id) values(" + userid + ",'" + GridView2.DataKeys[i].Value.ToString() + "')");
13、 } } gridview2bind(); gridview1bind(); } 4. 将在已分配权限GridView中所选择权限删除 逐项检验已分配权限GridView中全部选项,假如被选择,那么就将此功效从目前用户权限中删除,不然继续检验下一项,直到检验完全部选项。具体过程以下: protected void Button2_Click(object sender, EventArgs e) { string userid = DropDownList1.SelectedValue.ToString()
14、 WebService webs = new WebService(); for (int i = 0; i <= GridView1.Rows.Count - 1; i++) { CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1"); if (cbox.Checked == true) { webs.ExcuteSql("delete from 用户权限表 where 用户id="+userid
15、" and 功效id='"+GridView1.DataKeys[i].Value.ToString()+"'"); } } gridview2bind(); gridview1bind(); } 注:ExcuteSql为一在WebService.cs文件中创建实施sql语句公用方法。 五、用户登录后导航生成 用户登录后依据分配给用户权限生成对应操作导航菜单。具体实现是用户登录后,在数据库权限表中查找此用户所拥有权限,然后以设计方法分类逐项在用户端将功效名称以超链接方法进行显示,超链接文件为对应程序文件即可。 六、总结 相关信息管理系统中用户管理,我认为能够依据具体情况具体分析,采取对应设计和实现方法,方便于系统管理,不能局限于固定模式。 参考文件 [1]欧阳星明,张华哲.大型网络MIS系统中基于角色权限管理[J];计算机工程和应用;04期 [2]韦朝强,李言,李娟,肖继明.基于ASP技术用户管理系统[J];计算机和现代化;01期 [3]向雄. ASP.NET用户权限管理研究[J]. 电脑编程技巧和维护 , ,(10) [4]朱耀勤. 基于ASP.NET两种权限管理方法比较[J]. 电脑知识和技术 , ,(31)






