我先简单说说我以前自己的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中如何来实现我的权限呢?大家是怎么来做权限的呢?谢谢