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


Extjs在Asp.Net中的应用开发

本套课程讲述了Extjs在Asp.Net中的应用基础篇,内容深入浅出,适合新手学习使用,本部分内容属于extjs全新内容
  • 2015年04月24日 14:38

Asp.net中延长session失效时间(2点注意web.config和IIS)

一个是软件系统中的web.config:   配置文件web.config 的下加上 40表示session失效时间为40分钟 另一个注意的是:如果是本机或IIs架设,需要设置IIS的时...
  • dxnn520
  • dxnn520
  • 2012-11-15 15:34:54
  • 3472

asp.net 实现session过期跳转到首页

BasePage.cs public class BasePage : System.Web.UI.Page { public BasePage() ...
  • cdefg198
  • cdefg198
  • 2011-08-07 12:49:00
  • 1972

Asp.net Session过期页面处理

效果如下图: 源码如下: 前端: var i = 10; // 获取登录事件,并处理自动跳转 window.onload = func...
  • fanxingthink
  • fanxingthink
  • 2015-11-04 17:30:56
  • 956

asp.net session过期时间设置

超时不仅取决于Session.Timeout、web.config,还取决于服务器iis的设定 iis默认为7200秒. web.config关于sessionState节点的配置方案,sessi...
  • hutao1101175783
  • hutao1101175783
  • 2014-04-25 10:51:49
  • 3370

ASP.NET设置session超时时长的4中方法

1、本文所说Session过期时间的四种设置方式均在Widnows2003系统下设置的,具体步骤:开始——〉管理工具——〉Internet信息服务(IIS)管理器——〉网站——〉默认网站——〉右键“属...
  • icewizardry
  • icewizardry
  • 2013-12-11 16:15:14
  • 2800

解决session过期跳转到登陆页面并…

package com.lz.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servl...
  • nihousheng
  • nihousheng
  • 2014-12-23 00:23:58
  • 891

C#如何设置session过期时间

1、操作系统   步骤:开始——〉管理工具——〉Internet信息服务(IIS)管理器——〉网站——〉默认网站——〉   右键“属性”——〉主目录——〉配置——〉选项——〉启用会话状态——〉会话...
  • duanwenzhi00
  • duanwenzhi00
  • 2013-11-22 14:24:22
  • 35254

session配置的2种方法与session过期设置

web.xml sessionFilter eesofa.cn.filter.SessionFilter
  • nmj2015
  • nmj2015
  • 2017-05-18 15:37:09
  • 1672

当session过期后自动跳转到登陆页

 在asp.net中,如何使得当session过期后自动跳转到登陆页呢?下面我提供一个简单的方法: private void Page_Load(object sender, System.Event...
  • mdot
  • mdot
  • 2004-10-29 11:10:00
  • 3740
收藏助手
不良信息举报
您举报文章:asp.net中Session过期设置方法
举报原因:
原因补充:

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