asp.Net権限管理分析

1364 ワード

権限管理は、一般的に「ユーザー管理」「ロール管理」「権限管理」に分けられます.その中の権限管理は、主にあるモジュールに対して「追加」「修正」「削除」の的確な制御を実現する.例えば、あるユーザーは「文章を追加」する権限を持っているが、「文章を修正(審査)する」権限がない.以下、主に「権限管理」についてお話しします.
まず、データベースに格納するフォーマットを見てみましょう.
 
  
news:3,gallery:1,users:15

前のnews、gallery、usersがなく、データベースに格納されているのが3,1,15のフォーマットであることをよく見ているかもしれませんが、便利に見えるようにしたり、プログラムの作成時に表示しやすいようにしたりするために、追加しました.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はちょうど対応する権限の列挙です.
 
  
///
/// 1 ,2 ,4 ,8
///

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

間違いなく、これは複雑です.
未完、続き...