目前项目涉及到权限分配问题,相信很多高手都已经知道了,本人刚开始学习web开发,做这个权限管理的功能时候遇到很多问题,在这里写下这篇文章之想给学习web开发的新手们起到一个抛砖引玉的作用,同时希望得到高手们的指点。
使用技术:
1、XML,采用xml文件存储菜单内容。
2、微软ie控件treeview
第一步 安装控件,并写好xml文件:
相信你们都没有安装IE Web Controls。这么我们就开始安装这个。
1、点击 下载控件,这可是免费,且有源码的。
2、安装控件。网络上有很多安装使用方法,在这里就不重复了。如果你不清楚请参阅:
http://www.microsoft.com/china/msdn/archives/library/dnaspp/html/aspnet-usingtreeviewiewebcontrol.asp#aspnet-usingtreeviewiewebcontrol_topic5
3、将控件加入vs中。
4、写XML文件,文件如下:
在这里解释一下:
NavigateUrl为链接页;
Target为:在那个框架显示。我们做两个XML文件,一个命名为“管理员.xml”,另外一个为:“游客.xml” 。
第二步 放置控件。并写好后台代码:
1、放置控件,在aspx文件你想要控件出现位置添加下面语句:
2、后台代码中添加下面语句。注意,我们假设已经将用户所属权限存储文件和id取到Session对象中。
后记
通过上面两步,我们就将权限分配处理完毕,当我们不同的用户登入的时候,我们重载一次这个导航页面即可,因为我们使用的是框架,用户不知道调用那个页面, 而且我们系统应用对象为大型企业,系统主要也是完成查询功能。所以可以考虑不需要在每个页面中校验身份。
本文限于大家交流技术,请勿使用商业用途,谢谢!希望能与你们交流,我的msn: pfengk@hotmail.com
作者:pfengk
2005.7.1
大概设想:
权限到菜单,当我们用不同用户进入系统时,我们给他不同的菜单(或叫导航条)。
用 user表存储用户相关信息,role表存储角色信息,包含权限。权限使用xml文件存储。
数据字典
USER | |||
字段名 | 中文名 | 类型 | 备注 |
UserID | 用户ID | NUMER(7) | 主键,自增长 |
UserName | 用户名 | VarChar2(20) |
|
DepartmentID | 所属部门ID | NUMER(7) |
|
RoleID | 角色ID | NUMER(3) |
|
ROLE | |||
字段名 | 中文名 | 类型 | 备注 |
RoleID | 角色ID | NUMER(3) | 主键,自增长 |
RoleName | 角色名 | VarChar2(20) |
|
Popedom | 权限 | VarChar2(255) | 存储权限文件 |
使用技术:
1、XML,采用xml文件存储菜单内容。
2、微软ie控件treeview
第一步 安装控件,并写好xml文件:
相信你们都没有安装IE Web Controls。这么我们就开始安装这个。
1、点击 下载控件,这可是免费,且有源码的。
2、安装控件。网络上有很多安装使用方法,在这里就不重复了。如果你不清楚请参阅:
http://www.microsoft.com/china/msdn/archives/library/dnaspp/html/aspnet-usingtreeviewiewebcontrol.asp#aspnet-usingtreeviewiewebcontrol_topic5
3、将控件加入vs中。
4、写XML文件,文件如下:
<?
xml version="1.0" encoding="utf-8"
?>
< TREENODES >
< treenode text ="首页" NavigateUrl ="Main.aspx" Target ="mainFrame" >
< treenode text ="登入系统" NavigateUrl ="Authentication/Login.aspx" Target ="mainFrame" />
</ treenode >
< treenode text ="权限管理" NavigateUrl ="Main.aspx" Target ="mainFrame" >
</ treenode >
</ TREENODES >
< TREENODES >
< treenode text ="首页" NavigateUrl ="Main.aspx" Target ="mainFrame" >
< treenode text ="登入系统" NavigateUrl ="Authentication/Login.aspx" Target ="mainFrame" />
</ treenode >
< treenode text ="权限管理" NavigateUrl ="Main.aspx" Target ="mainFrame" >
</ treenode >
</ TREENODES >
第二步 放置控件。并写好后台代码:
1、放置控件,在aspx文件你想要控件出现位置添加下面语句:
<
iewc:TreeView
id
="trvMenu"
runat
="server"
Expanded
="True"
></
iewc:TreeView
>
private
void
Page_Load(
object
sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if (Session["LogonUserId"] == null )
{
Session["LogonUserId"] = 0;
Session["LogonUserName"] = "游客";
Session["LogonUserRole"] = "游客.xml";
}
this.trvMenu.TreeNodeSrc="Authentication/XMLFiles/"+ Session["LogonUserRole"].ToString();
this.trvMenu.DataBind();
}
{
// 在此处放置用户代码以初始化页面
if (Session["LogonUserId"] == null )
{
Session["LogonUserId"] = 0;
Session["LogonUserName"] = "游客";
Session["LogonUserRole"] = "游客.xml";
}
this.trvMenu.TreeNodeSrc="Authentication/XMLFiles/"+ Session["LogonUserRole"].ToString();
this.trvMenu.DataBind();
}
后记
通过上面两步,我们就将权限分配处理完毕,当我们不同的用户登入的时候,我们重载一次这个导航页面即可,因为我们使用的是框架,用户不知道调用那个页面, 而且我们系统应用对象为大型企业,系统主要也是完成查询功能。所以可以考虑不需要在每个页面中校验身份。
本文限于大家交流技术,请勿使用商业用途,谢谢!希望能与你们交流,我的msn: pfengk@hotmail.com
作者:pfengk
2005.7.1