关于Session超时、丢失问题

8 篇文章 0 订阅

在开发中使用session的确是使我们方便了很多,可用来记住用户名密码等等。但是大家都知道,session是有生命周期的,因为它是在服务器端保存的,为了减少服务器压力,有必要限制session的存活周期。

如果是用自己的主机当服务器,可以通过在iis里修改会话时间来控制session的时间,如果不是自己的主机,而是在网上租的虚拟主机,也就是说不能自己修改iis的会话时间,那就难办了,即使使用各种编程的方法,如:修改webconfig文件<sessionState mode="InProc" timeout="1440"></sessionState>,或者是 在页面中加<iframe width=0 height=0 src="SessionKeeper.aspx"></iframe>让其自动刷新,或者是ajax刷新等等.........似乎都不太管用。

为何不利用Cookie替换Session呢?Cookie还是比较好用的,与session不同的是,cookie是在客户端保持状态的,即使同时登陆的用户再多,也不会对服务器端施加很大的压力。对于本篇文章而言,Cookie作用更大的就是你可以自己设置会话时间而避开iis里设置的会话时间。

在登陆时
Response.Cookies["u_id"].Value = ds.Tables["Table"].Rows[0]["U_id"].ToString();//此时如果不设置Cookie的时间,那么只有在关闭浏览器时cookie才会失效
Response.Cookies["u_id"].Expires = DateTime.Now.AddDays(1);//给cookie设置一天的有效期


在退出登陆时
Response.Cookies["u_id"].Value = null;
Response.Cookies["u_id"].Value = "";
Request.Cookies.Clear();
Response.Cookies["u_id"].Expires = DateTime.Now.AddDays(-1);





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值