当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > asp.net 权限管理分析

ASP.NET
如何使用vb6.0来实现中文实名搜索
C#实现Window管道技术
记录下一些关于测试工具NUNIT的链接资料,有兴趣的朋友也可以跳过去看看
编写与.NET属性窗口交互的RAD组件(自序)
asp.net 关于form认证的一般设置:
编写与.NET属性窗口交互的RAD组件(一)
ActiveX控件的打包发布[无证书发布](一)
Visual SourceSafe 6.0 的问题思考
VB报表输出的问题,恳请不吝赐教
证书和签名--试用微软提供的证书测试工具系列
[dotNET]如何利用ConfigurationSettings.AppSettings.GetValues读取配置文件中多个...
使用C#编写DES加密程序的framework
令你的网页速度大大提高
怎样得到一个系统盘的全名,不是字符,是全名,如:本地磁盘(C:)?
r在richtextbox中插入动画/控件
Code: Writing Text to a File (Visual Basic)
算法讨论:哲学家就餐问题
我们所要关注的是什么?
firebird 连接嵌入式版本
从Csharp走到VB.Net(一):MyClass保留字

ASP.NET 中的 asp.net 权限管理分析


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 79 ::
收藏到网摘: n/a

权限管理在大中型网站中应用十分广泛,我最近也由于考虑到后期项目中可能需要加入权限管理部分,开始着手对权限管理进行研究。以下言论很多都总结自网络。 权限管理一般分为“用户管理”“角色管理”“权限管理”。而其中的权限管理,主要是针对某一模块实现“添加”“修改”“删除”的针对性控制,比如某个用户有“添加文章”的权限,但没有“修改(审核)文章”的权限。以下我主要先讲下“权限管理”。
首先,存进数据库的格式,看下:
复制代码 代码如下:

news:3,gallery:1,users:15

也许你经常看到存进数据库是3,1,15就这样的格式,而没有前面的news,gallery,users,为了看上去方便以及程序编写时容易查看,就加上了。news代表新闻模块,gallery代表图库模块,而users代表用户管理模块,而3,1,15:
复制代码 代码如下:

1 = 1 = 20
3 = 1 + 2 = 20 + 21
15 = 1 + 2 + 4 + 8 = 20 + 21 + 22 + 23

而这些值都可以用位或取得:
复制代码 代码如下:

1 = Convert.ToInt32(1)
3 = Convert.ToInt32(1|2)
15= Convert.ToInt32(1|2|4|8)

而1,2,4,8刚好对应权限枚举:
复制代码 代码如下:

/// <summary>
/// 1添加,2修改,4删除,8管理列表
/// </summary>
public enum Perm
{
add = 1,
update = 2,
delete = 4,
readlist = 8
}

如果已经一个权限值为7,那么我们怎么知道这个用户有哪些权限呢?我们分析:
复制代码 代码如下:

7 = 1 + 2 + 4 = 20 + 21 + 22 = 2 3 - 1

其实这是一条数学公式,很高兴我在数学系学的东西在程序方面有所作用了:
复制代码 代码如下:

Sigma ( 2n , n 是自然数 ) = 2n+1 - 1 ,即 1 + 2 + 4 + 8 + .... + 64 = 128 - 1 = 127

毫无疑问的,这个是比较复杂的。
未完,待续...