bsp;user)
{
string role = userToRole[user];
//检测权限
if (!roleToPermission[role].Contains("OpenFile"))
return;
Console.Write("Open file succeed!");
}
public void CloseFile(string user)
{
string role = userToRole[user];
//检测权限
if (!roleToPermission[role].Contains("CloseFile"))
return;
Console.Write("CloseFile succeed!");
}
public void SaveFile(string user)
{
string role = userToRole[user];
//检测权限
if (!roleToPermission[role].Contains("SaveFile"))
return;
Console.Write("SaveFile succeed!");
}
}
一个超级简单的rbac就体现出来的,但是没有任何实用价值。下面我会使用AOP思想去实现这个权限系统。
RBAC优缺点分析
优点在于:
l 易用和高效的授权方式 :用户在进行授权时只需对角色进行授权,之后将相应的角色分配给用户即可。
l 简便和高效的授权模型维护 :在技术角度来讲,进行授权模型的维护上因为基本只需要维护关联模型而显得简单而高效。
缺点在于:
l 复杂的权限校验 :在进行权限校验时需要不断的遍历和递规,造成了性能的影响。
l 对于数据权限的不够支持 :没有明确的数据权限模型,可以看到在经过重构的数据权限模型其实已经和 RBAC 模型有一定的出入,而且在数据权限的校验上实现起来是非常的低效。
http://www.blogjava.net/BlueDavy/archive/2005/05/18/4745.html
http://www.blogjava.n