asp.net 許可權管理分析

來源:互聯網
上載者:User

許可權管理一般分為“使用者管理”“角色管理”“許可權管理”。而其中的許可權管理,主要是針對某一模組實現“添加”“修改”“刪除”的針對性控制,比如某個使用者有“添加文章”的許可權,但沒有“修改(審核)文章”的許可權。以下我主要先講下“許可權管理”。

首先,存進資料庫的格式,看下: 複製代碼 代碼如下: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

毫無疑問的,這個是比較複雜的。
未完,待續...

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.