關於權限設計的一點建議
阿新 • • 發佈:2019-01-14
tel adl 增刪改查 等等 class sta 權限 return urn
當我們為某個用戶設置某個功能的增刪改查,審核,等等權限的時候,又不想用多個字段來記錄此功能的權限時,可以考慮用類似枚舉值的形式來保存選擇的權限,
比如:
查看=1
新增=2
修改=4
刪除=8
審核=16
發布=32
當用戶的權限值=6的時候 我們就知道他擁有新增和修改權限,當=33的時候 就知道擁有查看和發布權限,具體計算可參考下面的代碼
static void Main(string[] args) { while (true) { Console.WriteLine("輸入數字:"); List<int> lst = new List<int>(); GetNum(int.Parse(Console.ReadLine()), lst); Console.WriteLine("結果:" + string.Join(" ", lst)); } Console.ReadKey(); } private static void GetNum(intintNum, List<int> lst) { if (intNum <= 0) return; double dec = Math.Log(intNum) / Math.Log(2); int intMax = (int)dec; int intMaxNum = (int)Math.Pow(2, intMax); lst.Add(intMaxNum); intNum= intNum - intMaxNum; GetNum(intNum, lst); }
運行結果
這樣就可以很方便的存儲多個權限到一個字段
關於權限設計的一點建議