关于 权限给予的 方法!!!
我数据库中有个人员表 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"))
{
}
肯定不能进去
------其他解决方案--------------------
可行
------其他解决方案--------------------我觉得最简单的方法就是登录的时候用个通用变量保存。每个页面传参匹配不就解决了吗、
------其他解决方案--------------------楼上已经写了,楼主要加强基本功底啊,加油吧。