Session 对象 失效时间如何 改为 5小时
我在每一页都用如下代码来判断 Session 对象是否失效,如果失效了,就转到登录界面 ,问题是现在20分钟就失效了,用户抱怨得快疯了,
if (!Page.IsPostBack && Session["ayonghu"] != null)
{
if (!Context.User.Identity.IsAuthenticated)
{
Response.Clear();
Response.Write("<script language=javascript>window.alert('您没有权限进入本页!\\n请登录或与管理员联 系!');history.back();</script>");
Response.End();
}
Maticsoft.Model.AYONGHU mma = (Maticsoft.Model.AYONGHU)Session["ayonghu"];
labNAME.Text = mma.NAME;//把中文名字显示出来
factoryname.Text = Session["factory"].ToString();
是不是最好的做法就是 Session 对象 生成的时候,就设定失效的时间呢,代码如下:
lu = new Lib.UserSession("康达电子", "KD");
Session["USER"] = lu;
Session["USER"].timeout = 300;
Session["factory"] = dropvale;
Session["factory"] .timeout = 300;
就是感觉每一个去设,session对象太多,有点麻烦,还有没有更好的办法呢
[解决办法]
有人跟我说过 session 定时太长就是弱智的行为。。。
我果断认同。。
后来我就把一些不重要的信息都通过cookie执行。。
[解决办法]
内部系统么?
1. 你所谓的用户太2B,怎么不去抱怨淘宝登陆后失效时间
2. 你难道每页上都有一大坨SESSION的操作?为什么不把他们归纳到一起包装起来?
3. 试下设置下IIS的设定,具体的忘了
[解决办法]
session对象中有个TimeOut属性,可以设置时间长度
[解决办法]
Session.Timeout=5*60;
建议用cookie
[解决办法]
如果seesion很多 果断赞成 web.comfig设置. web.conig是个好东西,用的好的话,可以少些很多代码
[解决办法]
Session超时和莫名丢失的处理
原因:
1.改动global.asax webconfig bin 目录里的东西,导致Web Application重启
2.有些杀毒软件会去扫描webconfig文件,也会导致Session丢失
3.服务器内存不足导致Session丢失
4.程序内部有让Session丢失的代码
5.程序有框架页面和跨域情况
解决:
1.修改webconfig中timeout的时效时间
2.建议让网站使用独立的应用程序池
3.iis设置Session超时时间(默认为20分钟)
4.在应用程序池上打开网站对应的应用程序池属性,将web数量改为1 重启iis
5.在主页里面嵌套一个框架页iframe,设置宽度高度为0.在里面的加载页面里的
<head>里面加入<meta http-equiv="refresh" content="1080">这一句,意思是每隔18分钟向服务器发送一次请求。刚好赶在Session失效之前。这样session就永不失效了
[解决办法]