asp.net中Session过期设置方法

转载 2012年03月29日 12:06:23

在Asp.net应用中,很多人会遇到Session过期设置有冲突。其中,可以有四处设置Session的过期时间:

一、全局网站(即服务器)级

IIS-网站-属性-Asp.net-编辑配置-状态管理-会话超时(分钟)-设置为120,即为2小时,即120分钟后如果当前用户没有操作,那么Session就会自动过期。

二、网站级

IIS-网站-具体网站(如DemoSite)-属性-Asp.net,此时有两个选项,一个是“编辑全局配置”,一个是“编辑配置”。

如果“编辑全局配置”,就和上个配置一样。

如果“编辑配置”,则只对当前网站生效。因为一个服务器可能有很多独立网站。

1、继续选择“状态管理”-会话超时(分钟)-设置为360,即360分钟。效果同上,只不过只对当前网站生效。

2、身份认证-Forms-Cooke超时,选择"12:00:00",即12个小时。可选项共有以下八项:

00:15:00

00:30:00

01:00:00

02:00:00

04:00:00

08:00:00

12:00:00

1:00:00:00

即最长24小时,最小15分钟。这是默认的配置。在应用中可以自由定制。

三、应用程序级

同网站管理,只不过作用域仅限当前应用程序。

四、页面级

在某页面中,设置Session.Timeout = 30;即可临时修改某页面的会话过期时间。

查看某个Session的过期时间,可以用

view plaincopy to clipboardprint?
TimeSpan SessTimeOut = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0); 
TimeSpan SessTimeOut = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);

其中,二和三的设置,体现在Web.config中即:

view plaincopy to clipboardprint?
<?xml version="1.0"?> 
<configuration> 
<system.web> 
<authentication mode="Forms" > 
<forms name="AuthLogin" loginUrl="/Login.aspx" protection="All" timeout="360" slidingExpiration="true"/> 
</authentication> 
<sessionState mode="InProc"  cookieless="false" timeout="20" /> 
</system.web> 
<location path="Login.aspx"> 
<system.web> 
<authorization> 
<allow users="*" /> 
</authorization> 
</system.web> 
</location> 
</configuration>  
<?xml version="1.0"?>
<configuration>
<system.web>
<authentication mode="Forms" >
<forms name="AuthLogin" loginUrl="/Login.aspx" protection="All" timeout="360" slidingExpiration="true"/>
</authentication>
<sessionState mode="InProc"  cookieless="false" timeout="20" />
</system.web>
<location path="Login.aspx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
</configuration> 

以上四处设置的优先级为页面级>应用程序级>网站级>服务器级。换句话说,如果页面设置为20分钟,网站设置为120分钟,那么,显然以20分钟为生效的过期时间。

另外一个值得注意 的地方。

在设置二处,设置会话超时(SessionState)120分钟,而同时用forms认证,设置为“00:15:00”,即15分钟,并且slidingExpirationo为false,则真正生效的Session过期时间是多少呢?

有效的结果是SessionState的设置,即120分钟。

如果有设置Session过期时间没有生效的,请检查以上几处配置。

邀月注:本文版权由邀月和CSDN共同所有,转载请注明出处。
助人等于自助!   3w@live.cn


相关文章推荐

asp.net中Session过期设置方法

在Asp.net应用中,很多人会遇到Session过期设置有冲突。其中,可以有四处设置Session的过期时间: 一、全局网站(即服务器)级 IIS-网站-属性-Asp.net-编辑配置-...

asp.net中Session过期设置方法

在Asp.net应用中,很多人会遇到Session过期设置有冲突。其中,可以有四处设置Session的过期时间:

asp.net中Session过期设置方法

在Asp.net应用中,很多人会遇到Session过期设置有冲突。其中,可以有四处设置Session的过期时间: 一、全局网站(即服务器)级 IIS-网站-属性-Asp.net-编辑配置-...

处理ASP.NET Session失效的几个方法

来自:http://tech.ddvip.com/2009-07/1248501422126295.html 检查ASP.NETSession是否失效,是否超时,默认是20分钟,设置的方法是Sessi...

ASP.NET:Session的缺点总结及解决方法

任何事情都有二面性,优缺点都是兼有的。在评价一个事物时,我们应该要全面地分析它的优缺点,否则评价也就失去了意义。今天我们还是在批评Session的缺点前,先看看它的优点:只需要一行代码就可以方便的维持...

处理ASP.NET Session失效的几个方法

检查ASP.NET Session是否失效,是否超时,默认是20分钟,设置的方法是Session.TimeOut=30;或者您可以设置到更高,这个数值的单位是分钟,大家视情况而定。  检查代码有无Se...

ASP.NET在IE10中无法判断用户已登入及Session丢失问题解决方法

IE10中Session丢失问题引起众多业内人士的关注,今天发现在IE10中登录网站时,使用表单验证机制(FormsAuthentication)却无法判断该用户已登入,保存的Session总会丢失,...
  • jjkliu
  • jjkliu
  • 2014-02-10 10:03
  • 1261

.net session过期 原理及解决办法

这里用一个形象的比喻来解释session的工作方式。假设Web Server是一个商场的存包处,HTTP Request是一个顾客,第一次来到存包处,管理员把顾客的物品存放在某一个柜子里面(这个柜子就...

利用缓存过期在ASP.NET中实现定时器

在B/S结构中要实现定时器(或者说是一个事务)实在不是一件好办的事。可当你在网上搜索“ASP.NET定时器”的时候,你会发现搜索结果是如此的多,可这大多数结果中的代码健壮性都是那样的脆弱——没有考虑诸...

ASP.NET session时间的设置

ASP.NET session时间的设置 方法一: asp.net Session的默认时间设置是20分钟,即超过20分钟后,服务器会自动放弃Session信息. 当我们在asp.net程序...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)