首页 新闻 会员 周边 捐助

session和cookie均不能长时间保存怎么办?

0
悬赏园豆:5 [已解决问题] 解决于 2012-07-03 14:29

我是在网上买的虚拟主机,程序中的登录有个2周免登陆功能,用cookie或session在本地都可以,但程序放到服务器上后就只能保存20分钟左右,请问要怎么办,大家能否给点建议?

草根程序猿的主页 草根程序猿 | 初学一级 | 园豆:129
提问于:2012-06-07 11:51
< >
分享
最佳答案
0

SESSION是基于COOKIE保存的(ASP.NET也能基于数据库),只有客户端打开COOKIE才能有效保存SESSION,当一个会话结束后,SESSION的数据会自动无效(系统配置的,也有时间标签)。

COOKIE可以有多种配置,比如浏览器关闭时清除,保存一段时间(一个月、一年等),还可以永久保存(把有效期设置超长)。

收获园豆:5
无之无 | 大侠五级 |园豆:5095 | 2012-06-07 12:22

谢谢回复,我现在遇到的问题是在本机上一切正常,上传到服务器上就不行了,用浏览器插件查看cookie都是正常的(过期时间为两周后),但网站就不是能长时间登录

草根程序猿 | 园豆:129 (初学一级) | 2012-06-07 12:43

@菜鸟程序猿: 查看到的cookie的域名是什么?

dudu | 园豆:29642 (高人七级) | 2012-06-07 13:06
其他回答(2)
0

楼主的问题应该是SESSION失效了,楼主可以在web.config文件中对SESSION进行配置,<  sessionState 
  
mode="InProc" 
  stateConnectionString
="tcpip=127.0.0.1:42424" 
  sqlConnectionString
="data source=127.0.0.1;Trusted_Connection=yes" 
  cookieless
="false" 
  timeout
="20"  
/>

mode有三种模式  

InProc  设置为将Session存储在进程内,就是ASP中的存储方式,这是默认值。

StateServer  设置为将Session存储在独立的状态服务中。 

SQLServer 设置将Session存储在SQL Server中。

墨猦 | 园豆:668 (小虾三级) | 2012-06-07 14:57

我写在Global.asax的Session_OnStart中写了Session.Timeout=20160,但只在本地起作用。

支持(0) 反对(0) 草根程序猿 | 园豆:129 (初学一级) | 2012-06-07 15:02

是Session_Start  不是Session_OnStart,是不是放错地方了啊

支持(0) 反对(0) 墨猦 | 园豆:668 (小虾三级) | 2012-06-07 22:06
0

你把它放在你的一个固定文件里面,别用cookie了,如果觉得文件不安全,你可以把你想要cookie的东西放在数据库里面保存,然后固定一段时间清理一次数据库中的这个表就OK了!楼主不妨试试!

1+1=10 | 园豆:155 (初学一级) | 2012-06-08 08:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册