*****放在哪里合适?*****请教有系统设计经验的高手!

FORTMS 2004-09-17 01:44:10
小弟开发一个办公系统..系统用户进入后要根据他的权限列表(sql数据库中)确定他所拥有的功能!

这个集合应该放在哪里? 请高手帮权衡!!!
(1)Session ?
(2)cache ?
(3)还是???????? 总之小弟刚做,无法权衡哪中方式最优?请指教!
...全文
165 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
FlyBirdInLife 2004-09-20
  • 打赏
  • 举报
回复
用一个表记录权限,其中有用户ID,权限ID,
当登录时,到数据库中遍历,查出对应的权限
权限列表生成:可以根据哈希表动态生成
我的权限就是这样作的:)
FORTMS 2004-09-18
  • 打赏
  • 举报
回复
kld3000(Never Say Never) :Oceanson(洋之光)
你们二位的方法也正是我所难以取舍的!!!!!!!!!!!!!
(1)在登录时把权限列表取到Session [Session里放的数据量是否太大?!]
(2)在Session里只放用户ID在每次PAGE_LOAD时读数据库取权限,定制页面.[页面请求速度是否太慢?!]

系统很大,如何在其间做取舍???????请高手不吝指教!

happyjun2000 2004-09-18
  • 打赏
  • 举报
回复
session里面吧,asp.net的session也支持存放在cookie中的。
<!-- 会话状态设置
默认情况下,ASP.NET 使用 Cookie 来标识哪些请求属于特定的会话。
如果 Cookie 不可用,则可以通过将会话标识符添加到 URL 来跟踪会话。
若要禁用 Cookie,请设置 sessionState cookieless="true"。
-->
极客行天下 2004-09-17
  • 打赏
  • 举报
回复
支持session
kld3000 2004-09-17
  • 打赏
  • 举报
回复
楼上的0101010100000110010101序列号方式在小的系统里面可以考虑
系统大起来了,成百上千的页面每个都这样设置?
修改权限的时候也累死你
kld3000 2004-09-17
  • 打赏
  • 举报
回复
同意 Oceanson(洋之光) 的

把每个功能模块以不同字段的方式记录到一张表
用户基本信息一张表
用户权限一张表,只记录用户ID和权限ID

登陆系统之后,session里面只放用户id
每个页面pageload时先通过用户名取权限表
没有权限则返回出错提示页面

或者在生成目录树时就判断,没有权限的就不生成目录
这样一切就OK了
bravemanman 2004-09-17
  • 打赏
  • 举报
回复
FORTMS 2004-09-17
  • 打赏
  • 举报
回复
不知道各位大侠一般都是放在哪里的???????????????
Edifier0709 2004-09-17
  • 打赏
  • 举报
回复
放在Session中應該是沒問題的


不過你可別告訴我你的Server 是一台 PC哦
liujiayu10 2004-09-17
  • 打赏
  • 举报
回复
Session是在服务器端的
Cookies是在客户端的

如果你的服务器没有问题就用Session,否则就只能用Cookies,但后者的客户端必须打开支持才行,如果客户禁用Cookies那就没用了
colinliu 2004-09-17
  • 打赏
  • 举报
回复
我记得以前传统的做法是放在session中.以0101010100000110010101方式排列
fly_miss 2004-09-17
  • 打赏
  • 举报
回复
放Session中,Session可以有多种形式存放,在web。config中设置,可以放在程序进程中,Sql,Server中,和用一个windows的服务来保存session的状态
robert2004 2004-09-17
  • 打赏
  • 举报
回复
都是放session里面拉 /影响应该不大
rickjelly2004 2004-09-17
  • 打赏
  • 举报
回复
session
xml
Proyang 2004-09-17
  • 打赏
  • 举报
回复
看服务器配置了。
内存多少来决定
FORTMS 2004-09-17
  • 打赏
  • 举报
回复
Oceanson(洋之光)
我最关心的是保存在session中是不是性能会受很大的影响!尤其是多人在线的时候!
因为这个系统将来会在一个服务器上部署多个!!或者说越多越好!
请指教.谢谢
quickmove 2004-09-17
  • 打赏
  • 举报
回复
我记得以前传统的做法是放在session中.以0101010100000110010101方式排列
Oceanson 2004-09-17
  • 打赏
  • 举报
回复
首先
定义一个权限列表的类
包括基本的权限属性
和对数据库操作的函数

然后
针对每一个登陆者实例化权限类
构造函数名(用户名,密码)(密码不正确构造失败,即用户登陆失败)

最后把这个实例保存到session
由于session是独立客户的 所以不存在多人同时使用时的权限交叉问题

注意:session会有失效时间 有时还会应为某些原因丢失,如果保险的做法可以在cookie中
保存用户名 密码 副本 在必要时重新构造权限类
FORTMS 2004-09-17
  • 打赏
  • 举报
回复
但个人权限是个集合!!!!若同时多人在线是不是系统的性能会受到很大的影响呢?
Brookes 2004-09-17
  • 打赏
  • 举报
回复
在session里存储个人权限

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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