项目描述:
B/S架构,
jquery easyui+asp.net mvc2+spring.net+linq整合
基于用户->角色->权限 进行权限控制.
问题描述:
1.功能权限可以通过spring AOP控制,这个我们就不说了.
现在要做的就是页面级别的按钮控制,大家有木有好的解决方案?
最死的办法就是页面嵌入C#代码直接进行权限判断;还有的就是
把按钮当资源存库,然后控制访问权限,页面加载的时候依次判断读取.
我觉得以上两种都不怎好?希望大家提供下自己的解决方案^ - ^,
万分感激@
2.因为我用easyui作为UI,面临的一个问题就是既然要做到按钮权限
控制,那么就会涉及到js文件的动态调用.因为有些按钮是绑定有事件的,
当我不需要某按钮的时候,理应它的js事件也不应该加载到页面中,所以
当我对按钮进行权限控制时,我又如何控制对应js文件加载,希望大侠们
也给小弟提供提供思路?如果动态输出js,我觉得这样不灵活,维护js不方便!
有这方面经验的大侠,是否可以提供ajax权限控制方面的例子?
小弟在此先谢过各位,希望大家多多提供建议o^_^o~
后来我想了想,通过ajax方式也可以验证.
方式一:
可以先把所有的UI元素设计好,然后在所有UI元素加载完毕之后,
通过Ajax去验证权限,返回相应的权限值,通过权限值验证UI元素,
没有权限的隐藏掉.
方式二:
和方式一差不多,在UI加载时就验证权值,根据权限动态创建/加载
对应的UI元素
也许有的朋友会说通过浏览器源码功能可以看到对应的html代码
即使是隐藏也是可以看得到的,但是我们想想,因为我们在接口方法
(AOP)上也进行了权限验证,所以应该不担心这个问题(非绝对的)
不知道大家有何想法?
功能权限可以通过spring AOP控制,这个我们就不说了
按钮点击最终还是反映到服务器的接口上的,其实还是权限控制。咋就不说了呢。如果你当前已经实现好权限控制了,那说明需要更细粒度一点。
我意思是>
AOP权限控制不是我们讨论的重点,
重点在如何实现页面按钮权限控制上^_^
是小弟表达不清楚,嘿嘿...
你控制的是用户的每一个模块的操作权限;如添加、删除、修改、查询等权限;你可以在每个模块里添加这样权限设置然后加载这个模块时利用继承一个基类来统一管理当前用户的操作权限 ;
1.通过添加httphandler,在response中写入当前用户权限
例如,把权限值写在一个div里面
<div id="permissions" permission='PageA.Edit;PageB.Edit;....'>
2.自己用js写一个button控件,设定一个参数用于传递权限值,并检查用户是否拥有操作button的权限,也可以对easyui button控件进行封装
3.在你的页面中用自己写的button控件
按钮权限没有一劳永逸的方法.
或者你们在系统内如上面所说的, 用一些标签约定什么的. 不过还是觉得很麻烦
是的,我就觉得目前的方式比较麻烦,看看有没有大侠的方式更好些^_-