web方式下权限分配简单实现

目前项目涉及到权限分配问题,相信很多高手都已经知道了,本人刚开始学习web开发,做这个权限管理的功能时候遇到很多问题,在这里写下这篇文章之想给学习web开发的新手们起到一个抛砖引玉的作用,同时希望得到高手们的指点。
   

大概设想:

       权限到菜单,当我们用不同用户进入系统时,我们给他不同的菜单(或叫导航条)。
    用
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>
         在这里解释一下:NavigateUrl为链接页;Target为:在那个框架显示。我们做两个XML文件,一个命名为“管理员.xml”,另外一个为:“游客.xml”  。


      第二步 放置控件。并写好后台代码:
         1、放置控件,在aspx文件你想要控件出现位置添加下面语句:
<iewc:TreeView id="trvMenu" runat="server" Expanded="True"></iewc:TreeView>
         2、后台代码中添加下面语句。注意,我们假设已经将用户所属权限存储文件和id取到Session对象中。
        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();  
        }

 后记      
        通过上面两步,我们就将权限分配处理完毕,当我们不同的用户登入的时候,我们重载一次这个导航页面即可,因为我们使用的是框架,用户不知道调用那个页面,而且我们系统应用对象为大型企业,系统主要也是完成查询功能。所以可以考虑不需要在每个页面中校验身份。
        
        本文限于大家交流技术,请勿使用商业用途,谢谢!希望能与你们交流,我的msn: pfengk@hotmail.com 
                                                                                                                           作者:pfengk
                                                                                                                           2005.7.1

搜索一下相关内容

posted @ 2005-07-06 10:14  cspfeng  阅读(4098)  评论(0编辑  收藏  举报
测试