asp.net 權(quán)限管理分析
更新時間:2009年05月06日 02:56:18 作者:
權(quán)限管理在大中型網(wǎng)站中應(yīng)用十分廣泛,我最近也由于考慮到后期項(xiàng)目中可能需要加入權(quán)限管理部分,開始著手對權(quán)限管理進(jìn)行研究。以下言論很多都總結(jié)自網(wǎng)絡(luò)。
權(quán)限管理一般分為“用戶管理”“角色管理”“權(quán)限管理”。而其中的權(quán)限管理,主要是針對某一模塊實(shí)現(xiàn)“添加”“修改”“刪除”的針對性控制,比如某個用戶有“添加文章”的權(quán)限,但沒有“修改(審核)文章”的權(quán)限。以下我主要先講下“權(quán)限管理”。
首先,存進(jìn)數(shù)據(jù)庫的格式,看下:
news:3,gallery:1,users:15
也許你經(jīng)??吹酱孢M(jìn)數(shù)據(jù)庫是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剛好對應(yīng)權(quán)限枚舉:
/// <summary>
/// 1添加,2修改,4刪除,8管理列表
/// </summary>
public enum Perm
{
add = 1,
update = 2,
delete = 4,
readlist = 8
}
如果已經(jīng)一個權(quán)限值為7,那么我們怎么知道這個用戶有哪些權(quán)限呢?我們分析:
7 = 1 + 2 + 4 = 20 + 21 + 22 = 2 3 - 1
其實(shí)這是一條數(shù)學(xué)公式,很高興我在數(shù)學(xué)系學(xué)的東西在程序方面有所作用了:
Sigma ( 2n , n 是自然數(shù) ) = 2n+1 - 1 ,即 1 + 2 + 4 + 8 + .... + 64 = 128 - 1 = 127
毫無疑問的,這個是比較復(fù)雜的。
未完,待續(xù)...
首先,存進(jìn)數(shù)據(jù)庫的格式,看下:
復(fù)制代碼 代碼如下:
news:3,gallery:1,users:15
也許你經(jīng)??吹酱孢M(jìn)數(shù)據(jù)庫是3,1,15就這樣的格式,而沒有前面的news,gallery,users,為了看上去方便以及程序編寫時容易查看,就加上了。news代表新聞模塊,gallery代表圖庫模塊,而users代表用戶管理模塊,而3,1,15:
復(fù)制代碼 代碼如下:
1 = 1 = 20
3 = 1 + 2 = 20 + 21
15 = 1 + 2 + 4 + 8 = 20 + 21 + 22 + 23
而這些值都可以用位或取得:
復(fù)制代碼 代碼如下:
1 = Convert.ToInt32(1)
3 = Convert.ToInt32(1|2)
15= Convert.ToInt32(1|2|4|8)
而1,2,4,8剛好對應(yīng)權(quán)限枚舉:
復(fù)制代碼 代碼如下:
/// <summary>
/// 1添加,2修改,4刪除,8管理列表
/// </summary>
public enum Perm
{
add = 1,
update = 2,
delete = 4,
readlist = 8
}
如果已經(jīng)一個權(quán)限值為7,那么我們怎么知道這個用戶有哪些權(quán)限呢?我們分析:
復(fù)制代碼 代碼如下:
7 = 1 + 2 + 4 = 20 + 21 + 22 = 2 3 - 1
其實(shí)這是一條數(shù)學(xué)公式,很高興我在數(shù)學(xué)系學(xué)的東西在程序方面有所作用了:
復(fù)制代碼 代碼如下:
Sigma ( 2n , n 是自然數(shù) ) = 2n+1 - 1 ,即 1 + 2 + 4 + 8 + .... + 64 = 128 - 1 = 127
毫無疑問的,這個是比較復(fù)雜的。
未完,待續(xù)...
您可能感興趣的文章:
- asp.net membership 密碼重設(shè)
- asp.net Forms身份驗(yàn)證和基于角色的權(quán)限訪問
- 實(shí)例說明asp.net中的簡單角色權(quán)限控制
- asp.net 基于forms驗(yàn)證的目錄角色權(quán)限的實(shí)現(xiàn)
- 獲取創(chuàng)建Membership的數(shù)據(jù)庫創(chuàng)建腳本
- 一個基于Asp.Net MVC的權(quán)限方案
- asp.net+sqlserver實(shí)現(xiàn)的簡單高效的權(quán)限設(shè)計(jì)示例
- asp.net BasePage類+Session通用用戶登錄權(quán)限控制
- Asp.net Mvc 身份驗(yàn)證、異常處理、權(quán)限驗(yàn)證(攔截器)實(shí)現(xiàn)代碼
- ASP.NET MVC 中實(shí)現(xiàn)基于角色的權(quán)限控制的處理方法
- ASP.NET通用權(quán)限驗(yàn)證的實(shí)現(xiàn)代碼思路
- 初識 ASP.NET Membership 用戶管理
相關(guān)文章
ASP.NET Gridview 中使用checkbox刪除的2種方法實(shí)例分享
ASP.NET Gridview 中使用checkbox刪除的2種方法實(shí)例分享,需要的朋友可以參考一下2013-06-06
asp.net repeater實(shí)現(xiàn)批量刪除
asp.net repeater實(shí)現(xiàn)批量刪除實(shí)現(xiàn)效果代碼2009-03-03
asp.net SAF 中緩存服務(wù)的實(shí)現(xiàn)
對緩存的興趣源于張子陽寫的一篇文章《SAF 中緩存服務(wù)的實(shí)現(xiàn)》中的一個例子:2008-08-08
asp.net獲取ListView與gridview中當(dāng)前行的行號
這篇文章主要介紹了asp.net獲取ListView與gridview中當(dāng)前行的行號,實(shí)例分析了asp.net針對ListView與gridview獲取行號的實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-01-01
asp.net DropDownList實(shí)現(xiàn)二級聯(lián)動效果
這篇文章主要介紹了asp.net DroDownList實(shí)現(xiàn)二級聯(lián)動效果的相關(guān)資料,需要的朋友可以參考下2016-02-02

