Author:辰 From 辰''s blog
RBAC概念
rbac:Role Based Access Control,核心是用户只和角色关联,而某角色可以拥有各种各样的权限并可继承。
RBAC白话介绍
rbac有很多模型,最简单的就是Core RBAC。说白了就是User用户, Role角色, Permission许可 三个对象。
l 角色有多个操作许可
l 当用户分配了一个角色,就有了这个操作。
那么在程序里面怎么实现呢?很简单。
首先我们有一系列操作,例如Open File, Close File, Save File等。在代码里面可以一些方法。
然后我们有多个角色,例如Manager, Worker。
他们之间的对应关系如下,一般写在配置文件或者保存在数据库。
当进行权限验证的时候,就是看这个用户的角色是否包含这个动作的permission.
class RBCA
{
Dictionary<string, string> userToRole = new Dictionary<string, string>();
Dictionary<string, List<string>> roleToPermission = new Dictionary<string, List<string>>();
public RBCA()
{
//初始化manager的权限
string manager = "Manager";
List<string> managerlist = new List<string>();
managerlist.Add("OpenFile");
managerlist.Add("CloseFile");
managerlist.Add("SaveFile");
//初始化worker的权限
string worker = "Worker";
List<string> workerlist = new List<string>();
workerlist.Add("OpenFile");
roleToPermission.Add(manager, managerlist);
roleToPermission.Add(worker, workerlist);
//初始化用户pixysoft的角色
string user = "pixysoft";
userToRole.Add(user, manager);
}
public void OpenFile(string&n