asp.net 權(quán)限管理分析
更新時間:2009年05月06日 02:56:18 作者:
權(quán)限管理在大中型網(wǎng)站中應(yīng)用十分廣泛,我最近也由于考慮到后期項目中可能需要加入權(quán)限管理部分,開始著手對權(quán)限管理進行研究。以下言論很多都總結(jié)自網(wǎng)絡(luò)。
權(quán)限管理一般分為“用戶管理”“角色管理”“權(quán)限管理”。而其中的權(quán)限管理,主要是針對某一模塊實現(xiàn)“添加”“修改”“刪除”的針對性控制,比如某個用戶有“添加文章”的權(quán)限,但沒有“修改(審核)文章”的權(quán)限。以下我主要先講下“權(quán)限管理”。
首先,存進數(shù)據(jù)庫的格式,看下:
news:3,gallery:1,users:15
也許你經(jīng)??吹酱孢M數(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ù)學(xué)公式,很高興我在數(shù)學(xué)系學(xué)的東西在程序方面有所作用了:
Sigma ( 2n , n 是自然數(shù) ) = 2n+1 - 1 ,即 1 + 2 + 4 + 8 + .... + 64 = 128 - 1 = 127
毫無疑問的,這個是比較復(fù)雜的。
未完,待續(xù)...
首先,存進數(shù)據(jù)庫的格式,看下:
復(fù)制代碼 代碼如下:
news:3,gallery:1,users:15
也許你經(jīng)??吹酱孢M數(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ù)學(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身份驗證和基于角色的權(quán)限訪問
- 實例說明asp.net中的簡單角色權(quán)限控制
- asp.net 基于forms驗證的目錄角色權(quán)限的實現(xiàn)
- 獲取創(chuàng)建Membership的數(shù)據(jù)庫創(chuàng)建腳本
- 一個基于Asp.Net MVC的權(quán)限方案
- asp.net+sqlserver實現(xiàn)的簡單高效的權(quán)限設(shè)計示例
- asp.net BasePage類+Session通用用戶登錄權(quán)限控制
- Asp.net Mvc 身份驗證、異常處理、權(quán)限驗證(攔截器)實現(xiàn)代碼
- ASP.NET MVC 中實現(xiàn)基于角色的權(quán)限控制的處理方法
- ASP.NET通用權(quán)限驗證的實現(xiàn)代碼思路
- 初識 ASP.NET Membership 用戶管理
相關(guān)文章
asp.net?core?中的Jwt(Json?Web?Token)的使用詳解
session不支持分布式并且在服務(wù)器存儲一份用戶登錄的信息,這份登錄信息會在響應(yīng)時傳遞給瀏覽器,告訴其保存為cookie,以便下次請求時發(fā)送給我們的應(yīng)用,這篇文章主要介紹了asp.net?core?中的Jwt(Json?Web?Token)的使用,需要的朋友可以參考下2022-10-10asp.net實現(xiàn)利用反射,泛型,靜態(tài)方法快速獲取表單值到Model的方法
這篇文章主要介紹了asp.net實現(xiàn)利用反射,泛型,靜態(tài)方法快速獲取表單值到Model的方法,結(jié)合實例形式分析了asp.net中反射,泛型,靜態(tài)方法給model賦值的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-11-11在?ASP.NET?Core?中使用?HTTP?標(biāo)頭傳播詳情
這篇文章主要介紹了在?ASP.NET?Core?中使用?HTTP?標(biāo)頭傳播詳情,文章通過,我們創(chuàng)建?ServerA、ServiceB?兩個?Web?API?項目展開內(nèi)容,需要的朋友可以參考一下2022-04-04Asp.NetCore1.1版本去掉project.json后如何打包生成跨平臺包
這篇文章主要為大家詳細介紹了Asp.NetCore1.1版本去掉project.json后如何打包生成跨平臺包 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06asp.net點擊 查看更多 實現(xiàn)無刷新加載的實現(xiàn)代碼
asp.net點擊 查看更多 實現(xiàn)無刷新加載的實現(xiàn)代碼,需要的朋友可以參考下2012-06-06客戶端用JavaScript填充DropDownList控件 服務(wù)器端讀不到值
今天遇到一個奇怪的問題,某一頁面需要使用三級級聯(lián)下拉列表框。為提高用戶體驗,采用jQuery的cascadingDropDown插件調(diào)用后臺Web Services來實現(xiàn)ajax填充。2010-09-09Datatable刪除行的Delete和Remove方法的區(qū)別介紹
Datatable刪除行的Delete和Remove方法的區(qū)別介紹,需要的朋友可以參考一下2013-03-03