冷雨夜的专栏

net的世界真的很精彩!

用户操作
[即时聊天] [发私信] [加为好友]
冷雨夜ID:haojialin
86352次访问,排名1225,好友0人,关注者4人。
haojialin的文章
原创 121 篇
翻译 0 篇
转载 18 篇
评论 33 篇
最近评论
qjhli:这样的调用不行 ,没有考虑到重用~~!感觉是北大青鸟的学生写的代码~~!
Jason_WH:你好:
我是個新手, 剛接上手的程式, 但不知如何改. 主要是檢查用戶登錄的名稱是否符合要求. 如長度是5, 第一位是字母, 後四位是數字. 我用 Session("Staffid"), 沒法完成. 可否賜教.


<!-- #INCLUDE FILE="Library/Sys/Variables_Setting.asp" -->……
cihn:专门来顶贴,好文
哈哈
cihn:专门来顶贴,好文!!!
gigjiajia:正在学习,谢谢!
文章分类
收藏
相册
走过的路
blog
http://blog.csdn.net/21aspnet/category/49077.aspx(RSS)
http://blog.csdn.net/johncools/articles/615928.aspx
http://dotnet.aspx.cc/
http://singlepine.cnblogs.com/articles/264668.html(小山)(RSS)
http://singlepine.cnblogs.com/articles/293683.html
http://www.boke163.com/user1/4094/archives/2005/16266.shtml(RSS)
http://www.i170.com/user/gary_cen/Page_1
http://www.vchome.net/dotnet/xml/xml4.htm#_Toc509819464(RSS)
博客链接
http://allenlooplee.cnblogs.com/
http://www.cnblogs.com/hjf1223/gallery/63002.html
学习
ASP 用户手册_网页陶吧
友情连接
http://blog.csdn.net/ChengKing/category/168034.aspx
http://www.51windows.net/pages/vbscript/?url=/pages/vbscript/html/vsfctInStr.htm
www.microsoft.com/china
存档
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes

原创 基于角色的权限设计(一) 收藏

新一篇: 第一期讲课内容(刀疤主讲) | 旧一篇: 在ASP.NET中调用存储过程方法新解

在任何系统中,权限设计是最基础的东西,本文给出一个基于角色的权限设计的循序渐进的设计方案。

  在权限系统中,功能(权限)是最小的单位,比如起草新闻、编辑新闻、审核新闻、删除新闻等,而角色是一类功能的集合,比如新闻编辑这个角色,他可能有起草新闻、编辑新闻等功能集合,而责任编辑他可能就有更多的权限,比如除了新闻编辑的功能,还有审核新闻、删除新闻等功能,给张三赋予新闻编辑的角色(其实我更愿意说把张三加入到新闻编辑这个角色中去),张三就可以起草新闻、编辑新闻了,给李四赋予责任编辑的角色,李四就可以起草新闻、编辑新闻、审核新闻、删除新闻了。

  我们来看看版本一的解决方案:


 

  我们来模拟一下上面的数据:

  用户信息表:

UserID

UserName

U1

张三

U2

李四

  角色表:

RoleID

RoleName

R1

新闻编辑

R2

责任编辑

  角色用户表:

RoleID

UserID

R1

U1

R2

U2

  功能表:

FunctionID

FunctionName

F1

起草新闻

F2

编辑新闻

F3

审核新闻

F4

删除新闻

  角色功能表:

RoleID

FunctionID

R1

F1

R1

F2

R2

F1

R2

F2

R2

F3

R2

F4

  我们来看看如何判断一个用户具有某个功能权限:

  首先在用户张三登录的时候,获取张三的全部功能列表:

Select FunctionID From 角色功能表 Where RoleID In (Select RoleID From 用户角色表 Where UserID=’U1’)

  这样就可以得到张三的全部功能列表Functions,在起草新闻的页面我们就可以做如下判断:

Functions.Contain(‘F1’);//当然你可以把这个’F1’定义成一个常量:NewsFunction.Draft

  如果为true就说明张三有起草新闻的权限。

  当然对于web应用,您可以把Functions session保存起来,以避免每打开一个页面都去数据库中获取。

  似乎看起来是一个不错的解决方案。

  还是新闻系统,最初新闻系统没有分类,但是随着新闻的增加,没有分类的新闻看起来总是乱的,于是张三和李四给新闻添加了分类A、分类B,还是由张三负责起草,李四负责审核,以后又添加了更多的分类,并且也增加了人手,这个时候就有新的要求出来了:希望张三只负责分类A的起草,分类B的起草交给其他人做,李四呢也只负责分类A的审核(就相当于是一个栏目的责任编辑)。

第二部分:http://tubo.cnblogs.com/archive/2005/09/02/228828.html

发表于 @ 2006年02月16日 10:27:00|评论(loading...)|编辑

新一篇: 第一期讲课内容(刀疤主讲) | 旧一篇: 在ASP.NET中调用存储过程方法新解

评论:没有评论。

发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © 冷雨夜