关于 权限给予的 方法!!!我数据库中有个人员表 a,idnamepruview1aa1,101,103,10302,10303,2,201,2bb1,101,
关于 权限给予的 方法!!!
我数据库中有个人员表 a,
id name pruview
1 aa 1,101,103,10302,10303,2,201,
2 bb 1,101,103,10302,
3 cc 101,102,10301,2,201,30102,303
pruview列是当前用户的功能列表,我要在不同页面去查找这个人有没有其中的功能 ,有功能就开放,没这个功能就不开放。 这样的功能我该怎么去做,求大家给我个思路,最好写个公共的方法例子给我,谢谢!
[最优解释]
这个写法有漏洞
2,3,4,11,101中
1,10 都能匹配成功,但是1,10两个ID在权限中是不存在的。
应该这样
if((","+power+",").Contains(",101,"))
[其他解释]你这不是已经很明显了
取出pruview,以,截取对比功能列表编号,有就跳转到页面,没有就提示无权访问
[其他解释]读出 pruview字段,以逗号分隔(string的split),然后你给每个功能或按钮赋予标识,比如id,然后从分割的数组中查找,包含则允许
[其他解释]登陆后放在sesson里,每个页面都能访问到
[其他解释]private bool Check(string personalPowerStrList,string funcId)
{
return(personalPowerStr.Contains(funcId))
}
if(Check("190,.....","190"))
{
//ok
}
else
{
//deny
}
[其他解释]LZ你可以把你不同的页面或者不同的功能定义好,给一个ID或者给个sign标识
通过数据库或者xml之类的存储起来,以后你pruview字段中和当前操作的ID是否存在就可以了
[其他解释]扯。。。
string s = "101,1";
if (s.Contains("11"))
{
}
肯定不能进去
[其他解释]可行
[其他解释]我觉得最简单的方法就是登录的时候用个通用变量保存。每个页面传参匹配不就解决了吗、
[其他解释]楼上已经写了,楼主要加强基本功底啊,加油吧。
[其他解释]
我可能这些功能分在不同页面,不可能每回都去写分割存不存在的代码,我想写个公共的,直接把这个页面的几个权限给这个变量
[其他解释]怎么弄怎么弄 ?! 大哥! 来点提示
[其他解释]某个权限就是一个ID嘛,如1,101,103,10302,10303,2,201, 里面的101
验证某个人是否有101权限,就看这个字符串里面是否包含101就行了
string power="1,101,103,10302,10303,2,201,";
if((","+power+",").Contains(",101,"))
有权限
else
没有权限
[其他解释]公共方法怎么弄
[其他解释]写一个方法,包含两个参数,一个用户ID 一个权限ID,
1根据用户ID查到用户拥有的权限字符串,
2检查参数中的权限ID是否在查处的串中
3是:有权限 否:无权限
貌似没啥难的
[其他解释]对这个比较感兴趣
[其他解释]好吧,是有漏洞
[其他解释]