asp中设置session过期时间方法总结
2018-09-05 23:50
  如果程序中没有设置session的过期时间,那么session过期时间就会按照IIS设置的过期时间来执行,IIS中session默认过期时间为20分钟,IIS中session时间可以更改 
时间设置要放在前面 
例如 
复制代码 代码如下: 
Session.Timeout=30 SEESION有效时间为30分钟 
Session(ID)=Rs(id) 
Session(Name)=Rs(Name) 
Session(Pass)=Rs(Pass 
利用 Session.Timeout 属性设置超时时限 
对于一个登录到 ASP 应用程序的用户,如果用户在系统默认的时间内未进行其它任何操作,当设置的时间一到便自动撤销这个用户的 Session,这样就可以防止系统的资源被浪费。Session 对象的 TimeOut 属性可以用来设置“过期时间”,已分钟为单位,其设置格式为: 
复制代码 代码如下: 
Session.TimeOut=MaxTime 
实例代码:(5.asp)页面,本实例说明如何控制会话的结束。 
复制代码 代码如下: 
<%@ language=vbscript %> 
<% session.timeout=60 %> 
<html> 
<head><title>控制会话的结束时间</title><head> 
<body> 
<% 
who = Session.SessionID 
CurrentPage=Request.ServerVariables(SCRIPT_NAME) 
Response.AppendTolog who & : & CurrentPage 
Response.write <center>你的会话标识为: & who & <p> 
Response.write 你当前访问的页面路径为: & CurrentPage & <p> 
if Session(I)= then 
session(i)=1 
else 
session(i)=session(i)+1 
end if 
Session.Abandon 
Response.write 本页面被你刷新了 & Session(i) & 次。</centr> 
%> 
一、全局网站(即服务器)级 
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的过期时间,可以用 
复制代码 代码如下: 
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); 
其中,二和三的设置,体现在fig中即: 
复制代码 代码如下: 
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过期时间没有生效的,请检查以上几处配置 
网上找到的其它方法 
1、操作系统:Widnows Server 2003 
步骤:开始——〉管理工具——〉Internet信息服务(IIS)管理器——〉网站——〉默认网站——〉右键“属性”——〉主目录——〉配置——〉选项——〉启用会话状态——〉会话超时(在这儿设置你要的超时时间,单位分钟)。确定即可。 
2、用程序中Session过期时间的设置 
在ASP.NET这样的Web应用中,Session是用来保存用户状态的常用手段,不过由于服务器内存空间是有限的,所以Session过期时间设置是很有必要的。在ASP.NET中如何设置Session的过期时间呢,很简单,修改fig配置。 
具体修改方法如下,在web.config中进行如下配置 
复制代码 代码如下: 
<system.web> 
<sessionState mode=InProc timeout=30/> 
</system.web> 
在这里指的是Session过期时间为30分钟。也就是说30分钟后如果当前用户没有操作,那么Session就会自动过期了。 
3、在调用Session的cs页中,Load事件里面写以下 
复制代码 代码如下: 
Session.Timeout = 30; 
4、state service 
复制代码 代码如下: 
<sessionState cookieless=false timeout=480 mode=StateServer stateConnectionString=tcpip=127.0.0.1:42424 sqlConnectionString=data source=127.0.0.1;user id=sa;password= /> 
上一篇:ASP 隐藏下载地址及防盗链代码
下一篇:使用组件封装ASP的数据库操作
文章标题:asp中设置session过期时间方法总结
文章链接:http://soscw.com/index.php/essay/8516.html