问了很久也没有答复的高难问题

lencho2003 2003-10-16 09:52:22
主要目标:模块级的安全性控制,由超级用户来设定。有权限的用户可以使用该模块,无权限的用户则根本不能看到该模块。
表现方法:用菜单的方式来表现出来。
具体说明:一个OA办公系统。
1、每个登录用户的菜单,是由自己的权限决定的。每个功能模块就是一个菜单项(菜单可能有几层),现在就是说每个登录用户的权限是由超级用户来设定的,设定完成后,每个登录用户根据自己的权限在自己的登录界面上得到不同的菜单。
2、菜单的增删是可控制的,由超级用户来设定的。菜单的样式是树形结构,比如说:
WEB办公系统
个人日程
个人邮件
库存管理系统
库存总表
库存管理
每个菜单就是一个功能模块,A用户比如只能看库存总表,他的登录菜单就看不到库存管理这项菜单;B用户他有所有权限,就能看见所有菜单项。C用户不是能看到库存管理系统,他的菜单项中就没库存管理系统。
所以想用数据库来管理。小弟一直没有找到好解决方法,想请教各位高手指点
...全文
46 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
opolmzy 2003-10-21
  • 打赏
  • 举报
回复
确实够烦琐
不难。

——————————————————————————
欢迎访问我的站点:
http://www.moyhta.com
gevn 2003-10-21
  • 打赏
  • 举报
回复
这问题不难呀,只要你在显示(库存管理)之前加一段ASP代码控制就可以了。
要范例邮件联系guanxiaolin@gslsoft.com
lencho2019 2003-10-21
  • 打赏
  • 举报
回复
能不能说点范例啊
lions911 2003-10-16
  • 打赏
  • 举报
回复
技术上不难实现,设计起来要考虑周全
aben103 2003-10-16
  • 打赏
  • 举报
回复
不是很难,但做起来很烦
做一张动态表专门设置权限管理的
EG:
字段: 菜单名,操作权限,用户名,....
记录1: A1, 1, USER01
记录2: A2, 0, USER02
.....
用管理员设置权限时直接对这张表操作增加记录什么的!

我最近也做了权限设置,不过做的是增加字段,很麻烦,而且容易出错.做成动态的更好维护,利用率更高! :(
1蓝天1 2003-10-16
  • 打赏
  • 举报
回复
up,学习
xxrl 2003-10-16
  • 打赏
  • 举报
回复
每一个模块对应一个数据权限表
tylike 2003-10-16
  • 打赏
  • 举报
回复
啊 ~~~~!硬回车
接分!
csdntoll 2003-10-16
  • 打赏
  • 举报
回复
这个问题其实不难,不过做起来,很费事,推荐你看一张贴,应该对你有帮助:

http://expert.csdn.net/Expert/topic/1653/1653829.xml?temp=.5273554
chmask 2003-10-16
  • 打赏
  • 举报
回复
哎呀,很easy呀……有很多种办法来实现……这里大体的和你说两种吧……
1、将模块分开管理……,在每一个用户表内加上一个或多个字段用来标识用户的可访问模块……管理时如果给予此用户访问权限的话,就将模块名称加入,然后用户登录的时候先从库里取,表里有的模块就加载,没有的就不加载……
2、用户管理,将用户给予不同的分类……一个用户可以属于不同的多个类……而每一个类对应一个模块……管理后台时,针对想给予相应权限的用户将其加入到相应的类中……用户登录后,在所有类中查找是否有用户,有的话则加载……没有就不加载……
3……呵呵,还有很多种办法啦……用一些面向对象的思想去考虑这类问题……
呵呵,是不是很易呀?
wanghui0380 2003-10-16
  • 打赏
  • 举报
回复
这种东西也不算什么高难度的问题
先要解决的是规划,你要清楚自己的系统到底有多少个需要禁止的功能点,然后给每个功能点相应的权限判断标准就可以了。
一个比较可行的办法是参考tcp/ip协议中对子网划分的办法,给定每一个用户一个权限标识,规定每一个功能点的掩码标准,然后进行比较。(这种办法对大型项目有比较好的控制,如果是小项目的话,用楼上两位的方法就可以解决了)
vivisogood 2003-10-16
  • 打赏
  • 举报
回复
用数据设计一个表来专门模块和权限!
把每个功能设计成表里面的字段。 加上一些其它的信息就能动态管理了
不过还是要花点时间和心思的!
iamsangster 2003-10-16
  • 打赏
  • 举报
回复
是烦,不是太难
goldme76 2003-10-16
  • 打赏
  • 举报
回复
假设,a用户的级别为1
b用户的级别为2
c用户的级别为3
存放级别的字段为grade
菜单的库里,加一个字段,如:usevisible,用户存放哪类型以上的用户可见
比如: ABC模块为级别3的人能看到
B模块为级别2的人能看到
A模块为级别1的人能看到

在用户登陆成功后,设一个session("usergrade")=rs("grade")
那么
if session(usergrade)>=3 then
A模块
if session(usergrade)>=2 then
B模块
else
C模块
end if
end if
或者: menugrade=session("usergrade")
sql="select * from [菜单表] where usevisible<="&menugrade




chinahuman 2003-10-16
  • 打赏
  • 举报
回复
把可用的权限用字符串串起来。要用的时候重新分割。在生成那个菜单的时候,进行判断。如果菜单对应的权限值在权限串里的话就生成否则不生成!

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧