asp.net的session很快过期

来源:百度知道 编辑:UC知道 时间:2024/06/05 11:23:53
请问高手们我用session保存用户名来判断用户是否登陆,可是session很快就失效了,一般就10分钟左右,是页面还在打开的情况下,浏览器还没有关闭,session失效了。这个问题怎么解决啊?
session.timeout好像是指关闭页面后session保存多长时间嘛,我页面都还没关闭啊,session就过期了,
要重新登陆,而且我也试过逐渐将session.timeout的值增大,就算设为999也不管用,也不光我的电脑这样,我公司里的也是,朋友的也遇到这样的问题,做asp就很正常,asp.net就会很快失效

一般采用Session + Cookie结合的方式。
因为很多种情况会导致Session超时,比如像朋友们说的设置了timeOut,这属于自然超时。
再比如我重启了IIS,或者清空了池,都会引起Session过期。
怎么办呢?
微软提供了StateServer,即将Session保存在StateServer中,但是即使这样也存在自然超时的问题。总不能永不释放,否则服务器早晚崩溃呀。

怎么办呢?

采用Session + Cookie的方式。
将一些不敏感信息和一个令牌记录在Cookie中。发现Session超时后,看是否存在Cookie,存在的话,通过Cookie来取得相应敏感信息以保存在新Session中,同时更新令牌,原令牌实效。

周而复始...

设置session的有效期
Session.Timeout = 200

你者刚学ASP是吧,
Session有个属性好像叫 Timeout 整型,单位是分钟
默认是20

造成Session丢失的原因有很多,比如:Web.config设置的时间短,IIS响应时间短,还有如果在iframe里面也会时不时的掉Session,服务器压力增大时Session也有可能清空。还有就是检查你的程序是不是有清空的代码...以上情况你都看看吧。

首先要设置下,然后在看看代码有没有把2清除掉

把它改成,当你每操作一次页面时,就更新一次session,就跟你刚刚登陆的一样,这样就永不超时