日期:2014-05-17  浏览次数:20400 次

关于 权限给予的 方法!!!
我数据库中有个人员表 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列是当前用户的功能列表,我要在不同页面去查找这个人有没有其中的功能 ,有功能就开放,没这个功能就不开放。 这样的功能我该怎么去做,求大家给我个思路,最好写个公共的方法例子给我,谢谢!

------最佳解决方案--------------------
引用:
private bool Check(string personalPowerStrList,string funcId)

{


return(personalPowerStr.Contains(funcId))
}

if(Check("190,.....","190"))
{
//ok
}
else
{
//deny
}
      ……


这个写法有漏洞
2,3,4,11,101中

1,10 都能匹配成功,但是1,10两个ID在权限中是不存在的。

应该这样
if((","+power+",").Contains(",101,"))



------其他解决方案--------------------
你这不是已经很明显了
取出pruview,以,截取对比功能列表编号,有就跳转到页面,没有就提示无权访问
------其他解决方案--------------------
读出  pruview字段,以逗号分隔(string的split),然后你给每个功能或按钮赋予标识,比如id,然后从分割的数组中查找,包含则允许
------其他解决方案--------------------
引用:
引用:你这不是已经很明显了
取出pruview,以,截取对比功能列表编号,有就跳转到页面,没有就提示无权访问
我可能这些功能分在不同页面,不可能每回都去写分割存不存在的代码,我想写个公共的,直接把这个页面的几个权限给这个变量
登陆后放在sesson里,每个页面都能访问到
------其他解决方案--------------------
private bool Check(string personalPowerStrList,string funcId)

{


return(personalPowerStr.Contains(funcId))
}

if(Check("190,.....","190"))
{
//ok
}
else
{
//deny
}
------其他解决方案--------------------
引用:
引用:你这不是已经很明显了
取出pruview,以,截取对比功能列表编号,有就跳转到页面,没有就提示无权访问
我可能这些功能分在不同页面,不可能每回都去写分割存不存在的代码,我想写个公共的,直接把这个页面的几个权限给这个变量

LZ你可以把你不同的页面或者不同的功能定义好,给一个ID或者给个sign标识
通过数据库或者xml之类的存储起来,以后你pruview字段中和当前操作的ID是否存在就可以了
------其他解决方案--------------------
引用:
引用:private bool Check(string personalPowerStrList,string funcId)

{


return(personalPowerStr.Contains(funcId))
}

if(Check("190,.....","190"))
{
//ok
}
else
{
……


扯。。。           
 string s = "101,1";
            if (s.Contains("11"))
            {
               
            }
肯定不能进去
------其他解决方案--------------------
引用:
我觉得最简单的方法就是登录的时候用个通用变量保存。每个页面传参匹配不就解决了吗、

可行
------其他解决方案--------------------
我觉得最简单的方法就是登录的时候用个通用变量保存。每个页面传参匹配不就解决了吗、
------其他解决方案--------------------
楼上已经写了,楼主要加强基本功底啊,加油吧。