我先简单说说我以前自己的ASP.NET在不更改网站代码实现管理后台权限的方法(服务器控件版):
网站权限表
ID URL Name
1 index.aspx
2 edit.aspx btnEdit
3 edit.aspx btnDelete权限角色表(定义大类的角色)
角色权限表(定义某个角色拥有哪些权限)
用户角色表(定义用户拥有哪些权限的角色)
----------------------------------------------
实现:
根据用户所拥有的角色和角色所拥有的权限得出用户当前的所有网站操作权限
比如现在用户[1]有权限的:1,2
然后把这些记录放在Session里面(在这里我们不讨论放在哪里,反正能实现权限控制就行)
再写一个PageBase类,在Init中进权限进行检测
如用户现在点击进入Index.aspx页面
那么Init中取得当前网站的页面的文件地址名是否在他所保存的权限中URL相同的,
程序上取得ID=1的URL和他一样,说明他有权限
当用户进行Edit.aspx页面的时候,同理判断出了用户有权限,
但是在我的权限列表里面我定义了两个按钮权限2,3,
这个时候我就会用foreach的方法检测整个page的控件
发现我的权限3(btnDelete)按钮用户没有权限,那么我就隐藏他(Visible = false)
这样我就实现了对网站的所有页面和提交按钮的权限控制,而且可以不更改原有程序的任何代码但现在我用MVC的方法来做后台的时候,发现我的第二个隐藏页面中的某些控件没有办法实现那在MVC中如何来实现我的权限呢?大家是怎么来做权限的呢?谢谢
网站权限表
ID URL Name
1 index.aspx
2 edit.aspx btnEdit
3 edit.aspx btnDelete权限角色表(定义大类的角色)
角色权限表(定义某个角色拥有哪些权限)
用户角色表(定义用户拥有哪些权限的角色)
----------------------------------------------
实现:
根据用户所拥有的角色和角色所拥有的权限得出用户当前的所有网站操作权限
比如现在用户[1]有权限的:1,2
然后把这些记录放在Session里面(在这里我们不讨论放在哪里,反正能实现权限控制就行)
再写一个PageBase类,在Init中进权限进行检测
如用户现在点击进入Index.aspx页面
那么Init中取得当前网站的页面的文件地址名是否在他所保存的权限中URL相同的,
程序上取得ID=1的URL和他一样,说明他有权限
当用户进行Edit.aspx页面的时候,同理判断出了用户有权限,
但是在我的权限列表里面我定义了两个按钮权限2,3,
这个时候我就会用foreach的方法检测整个page的控件
发现我的权限3(btnDelete)按钮用户没有权限,那么我就隐藏他(Visible = false)
这样我就实现了对网站的所有页面和提交按钮的权限控制,而且可以不更改原有程序的任何代码但现在我用MVC的方法来做后台的时候,发现我的第二个隐藏页面中的某些控件没有办法实现那在MVC中如何来实现我的权限呢?大家是怎么来做权限的呢?谢谢
解决方案 »
- Bll中的GetList()
- 求web打印插件WebBrowser 的下载地址
- win7+ie8+vs2008下,为何页面引用的activex控件能够找到,但是引用它的方法就提示“对象不支持此属性或方法”
- 急求----做毕业设计遇到的问题!
- 求助,,关于google在线支付
- gridview控件
- 在线等,如何判断TextBox中输入的内容是否包含某些特定的词语
- Asp.net 问题:试过多种方法仍然无法解决找不到脚本库的错误!求救!!
- 高手求助!!!!
- 在WEB控件DATEGRID中能否实现标题锁定功能,请指教!
- EXT 中Panel 控件里面显示HTML代码(相当于读取一段HTML文字)样式不显示
- 未能加载文件或程序集或它的某一个依赖项。系统找不到指定的文件
-----------------------
这个可以解决,
问题现在用MVC的话我没有办法捆绑我页面中的按钮显示不显示,谢谢