资源描述
WEB管理系统中用户权限管理设计和实现
摘要:网络信息管理系统中数据安全和用户操作权限是很关键。本文针对部分信息管理系统用户管理模块提出了作者思绪和实现方法。含有一定参考价值观。
关键词:信息管理系统;用户管理;权限
一、引言
信息管理系统中数据安全是很关键,那基于WEB多用户信息管理系统中数据安全问题就显得更为关键,其中每个用户操作权限就必需由管理员依据工作需要来设置好,实现对于不一样用户登录系统以后出现不一样导航菜单。在实际开发过程中,因为有些企机关管理对于用户角色和权限划分不是太明确,所以对于这部分系统用户我采取了由管理员给每个用户动态添加对应功效,在用户登录时动态生成系统导航,这么每个用户登录后只能进行管理员所给予操作。
二、数据库表设计
因为系统是在网络环境中运行,而且是多用户,不一样用户可能享受不一样操作权限,而且用户操作权限可能在随岗位或其它原因需要改变。为了系统安全,要求不一样用户登录以后只能看到自己所能进行操作,而且整个系统用户角色又不是那么显著。基于这么情况,为完成用户管理,设计了以下数据表:
用户信息表(userinfo)
列名
数据类型
长度
是否NULL
列含义
备注
ID
char
4
Not null
用户编号
主键
DepartmentID
varchar
50
Not null
所在部门
TrueUserName
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
是否在线
功效表
列名
数据类型
长度
是否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
功效编号
二、功效模块设计示意图(图1)
用户基础信息
用户权限分配
用户信息浏览
用户添加
用户修改
用户
删除
用户
密码修改
用户功效分配
用户功效移除
用户管理
图1 用户管理功效模块示意图
三、功效实现
1.对于用户基础信息管理分别用不一样页面来实现用户信息增加、删除、修改和用户密码修改。
2.用户权限分配管理采取一个页面,由分配和移除功效来实现。操作界面图2:
图2 用户权限管理界面
设计时各关键控件ID列表
控件
控件ID
方法
选择用户组合框
DropDownList1
未分配权限GridView
GridView2
已分配权限GridView
GridView1
分配按钮
Button1
Button1_Click
移除按钮
Button2
Button2_Click
实现思绪是:管理员登录后选择用户管理功效下用户权限分配功效,在弹出页面上首先选择要分配权限用户,然后分别采取GridView显示选中用户未分配权限和分配权限,在未分配权限中选择要分配给选中用户功效,然后点分配按钮,所选中功效就会出现在已分配权限 GridView中;在已分配权限中选择要移除权限,然后点移除按钮,所选中功效就会出现在未分配权限 GridView中;由图2能够很显著地看出每个用户所拥有权限功效。
四、各关键功效实现方法:
1.未分配权限GridView数据绑定
在数据库功效表中查找目前用户所不含有操作功效,然后将所得数据集中信息绑定到未分配权限GridView中。具体过程以下:
protected void gridview2bind() {
WebService webs = new WebService();
DataTable ds = new DataTable();
string userid = DropDownList1.SelectedValue.ToString();
ds = webs.ExcuteSelect("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();
}
2.已分配权限GridView数据绑定
在数据库功效表中查找目前用户所含有操作功效,然后将所得数据集中信息绑定到已分配权限GridView中。具体过程以下:
protected void gridview1bind()
{ WebService webs = new WebService();
DataTable ds = new DataTable();
string userid = DropDownList1.SelectedValue.ToString();
ds = webs.ExcuteSelect("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();
}
3. 将在未分配权限GridView中所选择权限分配给用户
逐项检验未分配权限GridView中全部选项,假如被选择,那么就将此功效添加给目前用户,不然继续检验下一项,直到检验完全部选项。具体过程以下:
protected void Button1_Click(object sender, EventArgs e)
{ string userid = DropDownList1.SelectedValue.ToString();
WebService webs = new WebService();
for (int i = 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() + "')");
} }
gridview2bind();
gridview1bind(); }
4. 将在已分配权限GridView中所选择权限删除
逐项检验已分配权限GridView中全部选项,假如被选择,那么就将此功效从目前用户权限中删除,不然继续检验下一项,直到检验完全部选项。具体过程以下:
protected void Button2_Click(object sender, EventArgs e)
{ string userid = DropDownList1.SelectedValue.ToString();
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+" 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)
展开阅读全文