1.在数据库的用户属性表里建立用户权限的字段
可以使用数字如:1,2,3,4..来区分用户的等级
2.在用户登陆的时候可以使用"一次性全部取出放到一个session中"。
3.如果是多个角色,应该是算他最高权限的身份许多论坛就是这样的。
可以使用数字如:1,2,3,4..来区分用户的等级
2.在用户登陆的时候可以使用"一次性全部取出放到一个session中"。
3.如果是多个角色,应该是算他最高权限的身份许多论坛就是这样的。
下面就是控制訪問了;如果chkAccess==true,那麼允許用戶進入,否則導向錯誤頁面.然後根據用戶所屬的模組允許其執行相應的操作我們公司就是這樣控制權限的,我覺得還不錯,在這裡我說的有點簡單了
角色b有權限1,3,8,9.那麼用戶若為a,b角色,其權限為集合(1,2,3,8,9);
用表紀錄角色權限,
select unique 權限 from (select 權限 where 角色=a from 角色權限表 union all select 權限 where 角色=b from 角色權限表) r.
然後根據其權限執行相應的動作.
用户表:
id roleid(角色号)
权限表:
id roleid(角色号) modulid(可以访问的模块号)大家讨论
1,據你的系統,建議进入每个页面时才从数据库中去提取,
原因:你的用户比较多,如果过量的使用session的话,我估计你的服务器吃不消。当然必须给每个用户分配必须的session,例如:session("姓名")等。
2.首先,將你權限細分,並給定代號;
其次,設定角色的權限,叠加该用户权限就是取各角色的權限的交集.
叠加为:
在数据库的用户属性表(TBmember)里建立用户权限(class)的字段
可以使用数字如:1,2,3,4..来区分用户的等级
例如校友录中,1表示普通用户,2表示班级管理员(也是普通用户),3表示班级创建人(是普通用户也是管理员,只有班级创建人才具有删除该班级的权限),4学校创建人(当然应该管理整个学校了)。
然后依次类推。
明天早上给各位送分
(2)过量的使用session的话,我估计你的服务器吃不消---------如果增加服务器硬件呢?
客户好象不会理会服务器怎样,他们的第一感觉就是速度。
怎样能够折衷(1)和(2)得到一个更好的方案呢?
将你的页面权限设置为二进制的某一位
如页面一是第一位
如页面二是第二位
每个用户有权限属性如101011...
第一位为1,说明该用户有页面一的权限,可以进去
第二位为0,说明该用户没有页面二的权限,不可以进去
每次用户等录的时候,把这个属性放在session里
如:在进入页面一之前与100000...与,判断结果为0,说明没有权限
判断结果为1,说明有权限这个办法,我在建网站时用过,存入数据库时,可以把二进制数转成整形
不足是,可能权限个数有限制,不能超过整型最大值
当然,你也可以用double,但还是有限制的
http://www.jdon.com:81/jive/article.jsp?forum=46&thread=1876