权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源,不多不少。权限管理几乎出现在任何系统里面,只要有用户和密码的系统。权限管理还是比较复杂的,有的固定到某个模块,某个操作,甚至是某个按钮,总之想要做好一个权限管理,真TMD的不容易,下面分享一个小菜之前的一个案例:
基本的表设计如下图:
表结构:用户表、角色表、模块表、操作表、用户角色表、角色模块表、模块操作表。。。。角色模块操作表这个不是必须的
要查权限肯定是:
if (!IsLogin)
{
未登录
}
else//权限验证
{
string area="";
string controller="";
string action="";
string url = string.Format("/{0}{1}{2}", string.IsNullOrWhiteSpace(area) ? "" : area + "/", string.IsNullOrWhiteSpace(controller) ? "" : controller + "/", string.IsNullOrWhiteSpace(action) ? "" : action + "/");
if (!IsAuthorize(LoginUserId, url))
{
您没有权限执行此操作
}
}
用户的ID判断角色,然后把角色模块操作表中(最好放进缓存,然后做一个主动更新缓存的操作)去查是否有这个权限,如果有进入,对应的controller 和action,如果没有则不进入;这是一个非常简单的权限管理,大牛们觉的不合适的地方,多多指导!