程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> asp.net 權限管理分析

asp.net 權限管理分析

編輯:ASP.NET基礎
權限管理一般分為“用戶管理”“角色管理”“權限管理”。而其中的權限管理,主要是針對某一模塊實現“添加”“修改”“刪除”的針對性控制,比如某個用戶有“添加文章”的權限,但沒有“修改(審核)文章”的權限。以下我主要先講下“權限管理”。

首先,存進數據庫的格式,看下:
復制代碼 代碼如下:
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

毫無疑問的,這個是比較復雜的。
未完,待續...
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved