首页 新闻 会员 周边

SessionID可以保存在数据库中嘛?

0
悬赏园豆:10 [已解决问题] 解决于 2012-06-15 10:37

SessionID可以保存在数据库中嘛?

要保存肯定是可以的,但是在用户访问基数很大的情况下  可以吗?(Session无法长期连接,否则消耗服务器资源;如果不长期连接  那保存数据库的意义又何在?)保存在数据库中有何意义?

堂堂88的主页 堂堂88 | 初学一级 | 园豆:9
提问于:2012-06-15 09:49
< >
分享
最佳答案
0

.NET中,把SESSION配置为使用SQL数据库而不是cokkie会更好。

收获园豆:10
无之无 | 大侠五级 |园豆:5095 | 2012-06-15 10:07

能给我讲一下嘛?

两个问题:

  1、Session配置数据库的好处、坏处?配置在Cooke的好处和坏处?

  2、如何实现Session在数据库中的配置?保存SessionID在数据库嘛?

堂堂88 | 园豆:9 (初学一级) | 2012-06-15 10:09

@堂堂88: 

1、使用数据库的好处:解决浏览器不支持COOKIE,此时SESSION无效(比如登录的结果成功了,却还是要再登录),坏处,自然是增加了服务器的负担(需要SQL数据库的支持)

2、配置为数据库后,系统默认情况下会在本机创建一个数据库,当然也可以修改。这个时候只是把SESSION信息存储在数据库而已(当然也包括SessionID),但是,当Session过期后,系统会自动删除这条记录。

具体的配置,你可以查看下WebConfig的相关文档。

无之无 | 园豆:5095 (大侠五级) | 2012-06-15 10:15

@笨笨蜗牛: 谢谢你的答案。不过还是有个疑问。

Session不可能长期连接,这样就会反复的读写数据库,这不也增加了数据库服务器的负担嘛?

还有 Session存入数据库和直接从数据库读取登录信息 那么的差别到底有多大?或许我现在无法体验出这种差别吧?

堂堂88 | 园豆:9 (初学一级) | 2012-06-15 10:23

@堂堂88: 用户登录后,是要把登录信息存储在数据库(登录状态与日志),一般来说,不会把登录的会话状态信息人为的存储在数据库中(使用系统存储SESSION到数据库例外,这个也不算人为的)。

纵观目前的所有站点,虽然.NET支持把SESSION存储在数据库中,但这样操作的站点并不多,看来,这个实现方案存在很多不足或还没得到大家都认可。

至于JSP系统是否也支持把SESSION存储在数据库中,且 使用状况如何,因为我从没接触过JSP,就更是无从说起了。

无之无 | 园豆:5095 (大侠五级) | 2012-06-15 10:32

@堂堂88: 

总的来说,把SESSIONID存储在数据库是没有意义的 。

除非你要设置你的系统中任何一个账户只能在一个会话中登录存在(新的 登录覆盖旧的登录)。

无之无 | 园豆:5095 (大侠五级) | 2012-06-15 10:33

@笨笨蜗牛: 多谢蜗牛的讲解  我想我大概明白是怎么会事了。谢谢

堂堂88 | 园豆:9 (初学一级) | 2012-06-15 10:35
其他回答(1)
0

保存在数据库最安全。

悟行 | 园豆:12559 (专家六级) | 2012-06-15 09:55

拿登录来说,如果把登录信息保存在数据库,我可以理解(当然这还不如不保存,直接查询用户数据登录。耗能都差不多、、、、)。

因为Session无法长期连接,保存SessionID到数据库有什么用呢?Session丢失之后,SessionID也就没用了嘛不是?

支持(0) 反对(0) 堂堂88 | 园豆:9 (初学一级) | 2012-06-15 09:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册