ASP.NET系统用户权限设计与实现-C#,JAVA视频教学,网页设计,网站开发,asp,php,mysql,asp.net| 学知识教程网,
设为首页|收藏学知识 |改版意见收集|智能DIY搜索|加入我们|网站地图
当前在线人数:8770
好教程 易学习 新资讯!
ASP.NET

ASP.NET系统用户权限设计与实现

2007-07-03 源自: 网友评论 共有( )条评论! 内容报错
本文章地址:http://dev.xuezhishi.net/website/NET/2007-10-17/20760.html [将本信息与朋友分享!]

                     

  用户权限在.NET中的设计与实现

  利用.NET中的用户控件实现权限控制的基本思想是:根据角色访问控制(RBAC)的基本原理,给用户分配一个角色,每个角色对应一些权限,然后利用ASP.NET中的用户控件(UserControl)来判断该用户对应的角色是否对访问页面有访问的权力。

  下面将从数据库设计、添加角色和用户控件的使用等三方面来阐述具体实现过程。

  1、数据库中表的设计

  首先,在数据库中设计功能模块表、功能表和角色表等三个表。

  (1) 功能模块表

  为了管理好用户的权限,首先要组织好系统的模块,为此设计了一个功能模块表。见表1。


  (2) 功能表


  每个功能模块所具有的子功能称为功能,如商品管理模块goods(属于功能模块的范畴)包含商品信息查询、商品信息更新、商品信息删除、商品定价信息查询以及商品定价信息更新五种功能,功能表的设计见表2。

  上面提到的例子可以作为这样几条记录分别插入功能模块表和功能表。


insert into TModule values(0,'商品管理模块','goods',5);
insert into Tfunction values(0,'商品信息查询','selectgoods',0);
insert into Tfunction values(1,'商品信息更新','updategoods',0);
insert into Tfunction values(2,'商品信息删除','deletegoods',0);
insert into Tfunction values(3,'商品定价信息查询','selectgoodsprice',0);
insert into Tfunction values(4,'商品定价信息更新','updategoodsprice',0);

  (3) 角色表


  角色表的设计关键在于角色值的定义,它是一个由0和1组成的类似二进制数的字符串。而功能表中的funcNo (功能编号)字段表示该功能在角色表的roleValue (角色值)字段中的位置,如果该位置对应的数值是0,表示该角色无此权限,如果值为1,则表示该角色拥有此权限。如角色普通会员的角色值为100100…00(共100位),如上所示,商品信息查询的功能编号为0,角色值100100…00的第0位为1,所以该普通会员角色拥有商品信息查询的功能;相反,该角色值的第1位为0,而功能编号为1 的功能为商品信息更新,所以该普通会员角色没有商品信息更新的权限。它们的关系可由图2来表示。

  2、角色的添加

  有了上面几个表,角色页面的功能模块以及其对应的功能都可以从功能模块表和功能表中读出,如图3所示。


  在将新角色普通会员插入数据库时,先将角色值的所有位都置为0,然后利用.NET Framework 类库中的Replace函数将角色值中的打上勾的功能相应的功能编号位的值改为1。

  例如,新添加一个角色名为普通会员的角色,它拥有的功能为商品信息查询(功能编号0)和商品定价信息查询(功能编号3)两项,则角色值应为1001000……00(100位),即角色值中第0位和第3位的值为1,其余为0。

 

http://dev.xuezhishi.net/website/NET/2007-10-17/20760.html
分页:1 [2] 3
评论 点击查看
 


加入QQ群:35714363 一起成长
我要加入更多群 我有意见要反映
开发教室

学知识原创教程下载

本类最近更新
阅读排行

其他相关信息