日期:2014-05-18  浏览次数:20757 次

权限管理如何能管理到按钮上??
比如
管理员分配查看权限

这个列表页的添加 编辑 删除 按钮就会消失

如果分配了 查看 和 添加 权限

只出现 添加按钮

以此类推

请各位大大给点思路,感谢

------解决方案--------------------
参考delphi的,道理一样
http://blog.csdn.net/bdmh/article/details/5858122
------解决方案--------------------
如果你用的是服务器端控件的话, 在页面加载的时候 可以进行权限验证,

对没有权限的按钮设置Visible 为 false ,这样按钮就不会在页面上“出现”

否则是可以通过 js 去操作的
------解决方案--------------------
这块东西其实还是AOP一块东西

那么AOP的注入,拦截,动态代理技术其实就是你想要的

比如在asp.net里我们可以写httpHandler把所有事件,方法访问全拦截下来,然后动态注入自己的验证方法

其实asp.net mvc就是如此,这套里面用特性去标记权限。而特性很明显不是给代码用的,他是给Handler那块用的


同理我们在winform里面也可使用类似的玩意
------解决方案--------------------
权限控制是两方面的,一方面是客户端UI的呈现。决定给客户看到什么不能看什么。这一头只是为了优化用户体验和防君子不防小人。
一方面是服务端控制的权限,这才是最要命的。

就象是CSDN的这个贴,CSDN的NC的程序员居然把“管理”操作搞得人人可见。但它最终还是服务端把关的。
------解决方案--------------------
将按钮盒角色绑定,那个模块下面有多少按钮都要添加到数据库权限表中

/// <summary>
/// 权限设置
/// </summary>
private void UserAuthority()
{
List<string> UserAuthority = new List<string>(); //权限集合
UserAuthority = AuthorityOperate.authorityList; //权限

tsBtnDelete.Enabled = false; //删除

for (int i = 0; i < UserAuthority.Count; i++)
{
if (UserAuthority[i].ToString() == "删除")
{
tsBtnDelete.Enabled = true;
continue;
}

后面有多少按钮写多个。,。。。。

}
}
------解决方案--------------------
可以做自定义控件,根据你的权限,来显示你所需要显示的按钮,主要还是用代码来控制,通过查询是否有权限来设置按钮的显隐