技术开发 频道

Asp.Net大型项目实践:基于MVC权限管理

  【IT168 技术文档】权限管理是个老生常谈的功能,我看博客园也有不少“高手”写了相关的文章,但大多不是空谈理论,就是做的十分傻瓜和玩具差不多没有真正项目实用性。少数基于RBAC的看设计还可以,但犹抱琵琶半遮面的,谈到关键实现就阳痿,生怕别人学到似的。

  上篇:如何实践Asp.Net大型项目的开发

  权限管理是每个项目都要用到的,但一般想写好也有一定难度。所以不少人动不动就想做所谓“通用权限管理”,但基本我看都是雷声大雨点小。弦哥也写过所谓通用权限 ,什么基于RBAC,什么资源+操作=权限。搞来搞去灵活是灵活了,结果配置十分复杂在项目中使用并不理想,再加上“通用”二字,那就必须要独立于平台技术和项目,实现解耦,而权限是经常都需要访问的,所以数据传输,效率也成了大问题。

  而且通用权限的需求是非常多的,一般很难想全,我看园子里吉日哥虽然技术不咋地,但征集权限需求这个路子还是对的,至少比有些人随便写个玩具就敢号称“通用权限”来的好些。

  BB了这么多,来说说我的权限管理吧,正如上面所说我基本放弃搞所谓通用权限了,在吉日哥非常牛X非常通用的权限管理露出真面目之前,我觉得针对不同项目特点写不同的权限管理功能还是目前比较可行办法。所以我的这个权限通用肯定不敢说,只能说是局限在MVC框架下的,满足我这个项目需求的权限管理。

  由于吉日哥的权限老是遮遮掩掩,我看他放出的那点代码也非常蹩脚,他的通用权限不知道啥时候才能完全憋出来...所以弦哥带上全部Demo和源码给大家一个安慰吧。

  由于篇幅有限 数据库访问这块我不解释(之前的系列已经很详细的讲过了),EXTJS代码我不解释(之后会详细写EXTJS的典型应用场景),凡涉及到与权限无关的代码我不解释(大家有兴趣可以提出来,以后我详细介绍)。

  虽然有了demo但发图的国际惯例不能丢:

  在线Demo:

  地址:http://218.60.8.35:1234/

  服务器:网通

  端口:不要禁用1234端口应该就可以访问

  注意:连了数据库的,时间仓促肯定有漏洞,不要捣乱哈:)

  登录用户: 1.用户名:牛头人战士 密码:000000 权限:有全部菜单页面,不能进行数据库的更改操作(不影响录入体验)

  2.用户名:老虎MM 密码:000000 权限:少两个菜单页面,不能进行数据库的更改操作(不影响录入体验)

  3.用户名:admin 密码不公开 权限:所有权限

  注:以上的实现都是通过权限管理s配置出的哈,没有任何硬编码

0
相关文章