CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

关于三楼楼长提供的OA系统问题

楼主loveyzy(菌哥)2005-04-29 18:22:54 在 .NET技术 / ASP.NET 提问

大家好,我现在正在看由三楼楼长提供的OA源代码,觉得非常不错.目前的主要问题是对其权限设计虽然看过了里面的文档资料,但还是一知半解,特别是数据库中的数据看不明白,特向大家请教.  
  比如:  
  uds_staff_in_role表  
  staff_id         role_id  
  3                       1  
  38                     12  
  42                     44  
  ......  
  其中"1,12,44..."究竟代表什么意思?  
   
  又如:  
  uds_poistion表  
  Position_ID     Super_Position_ID     Position_Name     Position_Description     Department_ID  
  1                           1                                     总裁                     saf                                       0  
  2                           80                                   销售总监                                                         0  
  6                           4                                     产品经理                                                         0  
  ......  
  其中"1,80,4"究竟代表什么意思?最后一个字段中的"0"代表什么意思?  
   
   
  或者请知道的兄弟说说树的权限究竟是如何确定的  
  问题点数:100、回复次数:40Top

1 楼skytear()回复于 2005-04-29 18:31:19 得分 5

三楼楼长的那个东西见过,每研究过,不过要控制树的权限,应该有很多方法啊。  
  主要就是控制节点的啊。生成树的时候检查其权限就好Top

2 楼RuimeiSoft(RuimeiSoft)回复于 2005-04-29 18:44:02 得分 20

role_id是角色  
  估计他使用的是基于数据库的角色认证  
  我认为这是一个很好的解决方案  
  你需要一个功能表,一个角色表,一个角色对应几个功能  
  同样一个人也可以对应几个角色  
   
  这样为不同的员工赋予不同的角色,又可以为不同的角色赋予不同的功能  
   
  这种权限管理符合很好的管理和拓展,也和.net   framework的验证机理相吻合Top

3 楼RuimeiSoft(RuimeiSoft)回复于 2005-04-29 18:45:27 得分 5

当然你可能对功能进行枚举,当然也可以写入配置文件Top

4 楼loveyzy(菌哥)回复于 2005-04-29 19:05:52 得分 0

三楼楼长哪去了,来看看啊Top

5 楼onlytiancai(谁染枫林醉)回复于 2005-04-29 19:07:49 得分 20

这个问题确实值得讨论,其实用位域枚举我感觉不如用字符串来表示的好,我是这样想的  
  我这样设计的权限  
  [users]表   用户表  
  user_name   用户名  
  role_name   角色ID,对应role表的role_name  
  flag 权限字符串,对应flag表的flag_value,多个权限用逗号分隔开,如果启用自定义权限,这里讲起作用  
  dept_name   部门字段,对应dept表的dept_name  
  is_role_flag   是否使用默认的role权限,0表示使用默认role权限,1表示使用自定义权限  
  [role]表   角色表  
  role_id   角色ID  
  role_name   角色名称  
  flag   角色权限,对应flag表的flag_value,多个权限用逗号分隔开  
  [dept]表   部门表  
  dept_name   部门名称  
  dept_id   部门ID  
  [flag]表   权限表  
  flag_name   权限名称  
  flag_value   权限的值  
   
  这里比较有意思的是flag表,其实flag_name就对应程序中的各种用例,flag_value的编码要保持唯一并且带有一定意义,比如说你的系统里有新闻类(class   news),日志类(class   log),有邮件类(class   mail),然后各个类里有好多方法,我们可以用一个4位的字符串来定义flag_value,前两位表示类,后两位表示方法,比如说我们定义news的代码为01,log的代码为02,mail的代码为03,然后可以这样  
  news.add   0101  
  news.edit   0102  
  news.del   0103  
  log.add   0201  
  log.del   0203  
  ......  
  比如说role是新闻管理员,你可以让role_news_manage   的flag="0101,0102,0103",这样凡是属于role_news_manage的user都可以管理新闻了,然后可以启用自定义权限,你可以让一个人只能addnews,不能delnews,然后就设置user的flag比让is_role_flag为1  
   
  在用户登陆的时候把用户的flag存到session里,在指定某个方法的时候判断是否有权限  
   
  当然还有好多种情况,比如说user1属于role1,又属于role2,role1允许addnews,role2不允许addnews,这时候user1可不可以addnews  
  还有比如说新添加了一个用例,怎么分配flag_value,如何让所有的用户分配权限  
  Top

6 楼loveyzy(菌哥)回复于 2005-04-29 19:16:37 得分 0

楼上哥们说得不错,如果谁还没有这套OA系统的,我可以发,共同讨论Top

7 楼saintqiqi(钻石星辰(www.saintzone.net))回复于 2005-04-29 19:39:19 得分 20

最近也在做一个OA系统的权限  
  思路差不多,用了6个表  
  userbaseinfo   用户基本信息  
  role   角色表  
  function      
  basefunction     功能模块表   用了两个表,产生一个伸缩的二级菜单  
                              感觉可以只用一个,懒得去改  
  userroles       用户角色分配表     一对多  
  rolerights       角色权限表     可以将权限细化到增,删,改   用的字符串标记  
   
  一个用户可以拥有多种角色,但登陆时只能选择一种角色进入  
  系统根据角色权限生成树型菜单Top

8 楼saintqiqi(钻石星辰(www.saintzone.net))回复于 2005-04-29 19:46:50 得分 0

不过我下载的三楼楼主提供的OA系统里  
  那个备份数据库还原时老是错误!  
  楼主可不可以把数据库发给我  
  saintqiqi@163.comTop

9 楼loveyzy(菌哥)回复于 2005-04-29 20:00:28 得分 0

好的,我现在就发,我还要告诉你,在你还原的时候就在选上"强制还原",就可以了  
   
  Top

10 楼saintqiqi(钻石星辰(www.saintzone.net))回复于 2005-04-29 20:25:50 得分 0

谢谢!Top

11 楼chenji9231(独哭E语:不是我不帮你,其实我也不知道)回复于 2005-04-29 21:22:19 得分 5

不好意思,这个系统我很熟了。  
   
  可以共同探讨。  
   
  QQ:376069358Top

12 楼wqjch(阿泥)回复于 2005-04-29 22:08:05 得分 0

楼主转发一份给我研究一下,  
  先谢谢,wqjch@163.comTop

13 楼xuwenzhuo(约定好了!我们会撑着那把油纸伞风雨同路、不分不离、吃到老玩到老。)回复于 2005-04-29 22:20:30 得分 0

随便发一分给我   winjer2001@163.comTop

14 楼fluxayxxx(阿茂)回复于 2005-04-29 22:37:46 得分 0

给我一份7758love7758@163.comTop

15 楼cuwlk(杜青)回复于 2005-04-29 23:08:47 得分 0

cuwlk@163.com  
  给我发一份.  
  Top

16 楼icd(骆驼)回复于 2005-04-29 23:45:47 得分 0

caogang@56.com  
  给我发一份研究一下.谢谢Top

17 楼netter2003(我知道错了,以后我会及时结贴。)回复于 2005-04-29 23:58:25 得分 0

我是用处理字符串实现的权限限分配  
  可以一对多  
  了可以一对一  
  Top

18 楼shasi(煞思病毒)回复于 2005-04-30 05:17:50 得分 0

给我看一份学习!谢谢Top

19 楼shasi(煞思病毒)回复于 2005-04-30 05:18:33 得分 0

shasibingdu@163.com                
   
  忘了地址Top

20 楼netstray()回复于 2005-04-30 07:56:50 得分 0

楼主能给我发一份学习学习吗?  
   
  gl.guan@gmail.comTop

21 楼wood_c()回复于 2005-04-30 08:08:54 得分 0

楼主给我发一份吧  
  mailclub@sina.comTop

22 楼onlytiancai(谁染枫林醉)回复于 2005-04-30 09:00:40 得分 0

分情况讨论吧,其实.net自带的认证和授权的相关类很好用了,可以自定义身份验证,自定义授权等,就是继承几个类就可以了,拿windows的权限系统来说吧  
   
  用户(user)可以属于用户组(role),文件   (file)可以属于文件夹(dir),文件夹(dir)还可以属于父文件夹(dir),然后可以给一个文件夹设置权限,然后这个文件夹下的子文件和子文件夹就都继承了这个文件夹的权限,文件夹可以针对用户组设置权限,也可以针对用户设置权限,而用户的子文件夹和子文件也可以针对用户和用户组设置权限,如果权限冲突的话,权限合并的规则是拒绝大于允许.  
  因为每个file或者dir可以设置的权限有好多种,有read,write,edit等,他是把这些权限以位域枚举的形式保存的,如果OA里要模拟这么复杂的权限系统的话,确实很复杂,我感觉难点在于.  
   
  1.权限的继承,如何设置一个类的访问权限,而继承自这个类的子类顺便继承它的权限  
  2.权限的细分,一个类可能有好多个方法,每个方法应该都可以设置访问许可,而各个类的成员不可能都一样,所以许可标识不能一概而论,这个比windows的文件夹权限负责,因为windows的权限就那规定的几种,读,写,修,删,追加等,程序里就比这个多样化了,有审批什么的.  
  3.权限的计算,比如说这个类允许role1访问,没有显式设置role2允许访问,而显式拒绝了role3的访问,而允许user1访问,但是user1又同时食欲role1,role2,role3三种角色,这时候权限如何叠加,如何换算,要有一套约定俗成的规则,类似的情况还可以列举好多种,要考虑到所有可能的情况才行.  
  4.关于特殊资源的访问授权,比如说我们要保护一些实体文件,可以控制他们的访问,在程序里如何控制,比如说office文档,图片文件,邮件等保存在硬盘上的东西,我们如何用程序控制让那些用户访问,而不让那些人访问呢?  
  5.新加功能的权限设置,比如说你的OA新增加了一个功能或者新引入了一个类,肯定得设置新的权限标识,难道要给所有的用户都重新设置一下权限,以便让某些人能用这个功能,某些人不能用吗?  
   
  好多呢,其实做一个坚实而又灵活有扩展性的权限系统不是很容易的事Top

23 楼aimcy(Debian)回复于 2005-04-30 09:18:36 得分 0

哪位大哥能把OA系统发一份给我  
  aimcy@163.comTop

24 楼chinawn(动性忍心)回复于 2005-04-30 09:26:04 得分 0

呵呵~大家一起学习Top

25 楼loveyzy(菌哥)回复于 2005-04-30 10:30:04 得分 0

如果熟悉这套系统的,能留下QQ吗?Top

26 楼xm0592(帮派体系)回复于 2005-04-30 10:44:28 得分 0

楼主给我发一份吧,   谢谢!  
   
  xm_0592@yahoo.com.cnTop

27 楼coolsundy(我向上飞。。决不后退。。)回复于 2005-04-30 11:09:58 得分 0

coolsundy@163.com  
  老大,发一份给我吧.我很需要的.谢谢.Top

28 楼loveyzy(菌哥)回复于 2005-04-30 11:24:32 得分 0

除了最后的两位,别的都发了,收到了吗  
  Top

29 楼hedonister(冰戈)回复于 2005-04-30 11:37:38 得分 0

 
  UDS   OA   下载  
  http://www.eading.com/download/oa.rar  
   
  自己下载去Top

30 楼wangasp(小虾一个)回复于 2005-04-30 12:15:10 得分 0

我下了,慢慢看看,和大家一起讨论!Top

31 楼wangasp(小虾一个)回复于 2005-04-30 12:15:32 得分 0

我靠,怎么这么大啊!Top

32 楼singlepine(小山)回复于 2005-04-30 12:37:31 得分 0

singlepine@sina.com  
  给我一份,谢谢Top

33 楼top1000(天天向上)回复于 2005-04-30 12:51:42 得分 0

一起学习!Top

34 楼jenycheng(听,雪的声音)回复于 2005-04-30 13:13:03 得分 5

to   :   hedonister(冰戈V2.0)   (   )   信誉:75    
   
   
  多谢   朋友   提供下载    
   
  谢谢Top

35 楼loveyzy(菌哥)回复于 2005-04-30 14:24:07 得分 0

等了这么长时间,就是没有等到完全了解uds   oa的人,郁闷...Top

36 楼fanweiwei(黑暗凝聚力量,堕落方能自由)回复于 2005-04-30 14:48:35 得分 0

路过Top

37 楼aimcy(Debian)回复于 2005-04-30 14:56:26 得分 0

怎么登录不进去啊,提交以后就把页面关掉了????Top

38 楼chenji9231(独哭E语:不是我不帮你,其实我也不知道)回复于 2005-05-04 09:14:01 得分 0

To:   aimcy()  
   
  因为你的浏览器把弹出窗口屏蔽掉了,所以不能打开程序窗口。  
   
  大家继续,我想我应该能好好和大家研究一下的。Top

39 楼chenji9231(独哭E语:不是我不帮你,其实我也不知道)回复于 2005-05-04 09:18:34 得分 20

To:   loveyzy   (菌哥)    
   
  答复:其中"1,80,4"究竟代表什么意思?最后一个字段中的"0"代表什么意思?  
   
  1,80,4   代表上级职位的ID号,最后一个字段的0是部门号,但是这个系统在我研究的时候还没有实现部门管理,所以都是默认的值0。  
   
  五一加班不能陪女朋友,郁闷!!!Top

40 楼therainman(一只郁闷的猪)回复于 2005-05-04 10:00:02 得分 0

强烈关注~~~~~~~~Top

相关问题

  • 三楼楼长OA系统安装问题
  • 三楼楼长提供的OA系统调试(100分相送)
  • lkk2073 (三楼楼长) 送给大家OA系统 显出不出功能树来
  • 关于三楼楼长提供的OA系统的权限设计
  • 跪求三楼楼长oa!
  • 谁能给一个三楼楼长做的OA系统的数据库sql脚本?
  • 三楼楼长的OA系统,出问题了,在线等,解决问题马上结贴!(50分相赠!!!!)
  • 三楼楼主的OA系统是怎么配置运行亚?
  • 请教,关于三楼楼主的OA系统安装问题
  • 三楼楼长的oa问题

关键词

  • 文件夹
  • 角色
  • 字段
  • 用户
  • 系统
  • 研究
  • 文件
  • 权限
  • 表
  • oa

得分解答快速导航

  • 帖主:loveyzy
  • skytear
  • RuimeiSoft
  • RuimeiSoft
  • onlytiancai
  • saintqiqi
  • chenji9231
  • jenycheng
  • chenji9231

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo