首页 新闻 会员 周边 捐助

Session 对象 失效时间如何 改为 5小时

0
悬赏园豆:5 [已解决问题] 解决于 2012-04-02 20:55

我在每一页都用如下代码来判断  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对象太多,有点麻烦,还有没有更好的办法呢

zhengyingcan的主页 zhengyingcan | 初学一级 | 园豆:12
提问于:2012-03-08 08:53
< >
分享
最佳答案
0

如果服务器自己可以控制,建议你以StateServer方式存储Session,即使IIS重启,Session也不会丢失。

收获园豆:4
walen | 菜鸟二级 |园豆:429 | 2012-03-08 15:21
其他回答(3)
0

<system.web>    

    <sessionState mode="InProc" timeout="30"/>

</system.web>

OOLi | 园豆:163 (初学一级) | 2012-03-08 09:22

我设置了<sessionState mode="InProc" timeout="720"/>  没有反应,是不是IIS也要那个地方要修改一下

支持(0) 反对(0) zhengyingcan | 园豆:12 (初学一级) | 2012-03-08 09:56

@zhengyingcan: 

这个失效时间应该是从不再与系统交互的时间的时间算起吧,你是怎么测的?

建议少用session

支持(0) 反对(0) OOLi | 园豆:163 (初学一级) | 2012-03-08 10:29

为什么只是30分钟,可不可以 timeout="3000"/>

支持(0) 反对(0) zhengyingcan | 园豆:12 (初学一级) | 2012-03-08 15:24

@zhengyingcan: 

应该可以吧,不知道应用程序池回收对session会不会有影响

支持(0) 反对(0) OOLi | 园豆:163 (初学一级) | 2012-03-08 15:58
0

在Web.config中设置或在Global.asax设置session过期时间。。。

不过也有一些莫名奇妙的问题会出现。。。

期待会有更好的解决方法。。。

收获园豆:1
KivenRo | 园豆:1734 (小虾三级) | 2012-03-08 21:27
0

我都是 用的cookie 十二件自己设置 多久都可以。

世界万物 | 园豆:276 (菜鸟二级) | 2012-03-10 01:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册