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

ASP.NET
FreeTextBox(版本3.1.6)在ASP.Net 2.0中使用方法
.NET 常用功能和代码小结
在 .NET Framework 2.0 中未处理的异常导致基于 ASP.NET 的应用程序意外退出
asp.net IList查询数据后格式化数据再绑定控件
asp.net sql存储过程
asp.net 简单实现禁用或启用页面中的某一类型的控件
asp.net(c#)获取内容第一张图片地址的函数
The remote procedure call failed and did not execute的解决办法
ASP.NET 在线文件管理
asp.net 读取并修改config文件实现代码
ASP.NET Cookie 操作实现
asp.net Silverlight中的模式窗体
Silverlight中动态获取Web Service地址
asp.net Silverlight应用程序中获取载体aspx页面参数
asp.net 水晶报表隔行换色实现方法
asp.net 获取Gridview隐藏列的值
手动把asp.net的类生成dll文件的方法
asp.net 使用ObjectDataSource控件在ASP.NET中实现Ajax真分页
动态指定任意类型的ObjectDataSource对象的查询参数
asp.net Md5的用法小结

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 59 ::
收藏到网摘: 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

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