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