asp中设置session过期时间方法总结

合集下载

如何解决ASP中session失效问题-最新年文档

如何解决ASP中session失效问题-最新年文档

如何解决ASP中session失效问题-最新年文档如何解决ASP中session失效问题ession是ASP中的一个重要对象,用于存储特定的用户会话所需的信息。

session中文是“会话”的意思,在ASP中代表了服务器与客户端之间的“会话”。

session的作用时间从用户到达某个特定的Web页开始,到该用户离开Web站点,或在程序中利用代码终止某个session结束。

引用session则可以让一个用户访问多个页面之间的切换也会保留该用户的信息。

系统为每个访问者都设立一个独立的session对象,用以存储session 变量,并且各个访问者的session对象互不干扰。

在《网页制作》教学中,我设计了这样一个任务:设计一个会员登录模块,会员分为一、二、三个级别,登录后,不同级别的会员在购买商品时可享受不同的折扣。

在实现模块功能时,就用到了session 对象。

然而,当某个会员登录并成功购买了一个商品后,当“再购买”行为发生时,系统却不能正确给出折扣。

为什么?仔细分析模块中的两个页面,即登录页面login.asp和购买页面buy.asp的关系:登录页面将会员的“级别”等信息保存在session中,购买页面则从session 中获得会员“级别”等信息,进而在价格上给予对应折扣。

“再购买”不能识别会员级别,显然是因为session失效了。

如何解决这个问题?我尝试了下面几种办法。

1 修改timeout属性值ession对象的timeout属性用来设置session会话的超时时间,以分钟表示,默认值为20分钟。

当timeout属性设置的时间值耗尽后,会话资源将被释放。

通过timeout属性破坏session对象,避免了session对象在服务器中无限制地产生,保护了服务器资源。

但是,在实际Web应用程序开发中,常常遇到如上述会员“再购买”中出现的session失效现象,导致用户状态信息丢失而致使应用流程无法正常完成的问题。

C#如何设置session过期时间

C#如何设置session过期时间
C#如何设置session过期时间
1、操作系统
步骤:开始——〉管理工具——〉Internet信息服务(IIS)管理器——〉网站——〉默认网站——〉
右键“属性”——〉主目录——〉配置——〉选项——〉启用会话状态——〉会话超时(在这儿设置你要的超时时间,单位分钟)。确定即可。
2、应用程序中Session过期时间的设置
document.all["Back"].src="SessionKeeper.asp?RandStr="+Math.random();
//这里的RandStr=Math.random只是为了让每次back.src的值不同,防止同一地址刷新无效的情况
window.setTimeout("keepsession()",900); //每隔900秒调用一下本身
cookieless="false"
timeout="20"
/>
其中默认的mode是InProc类型,这种模式和以前ASP模式一样,就是服务器将Session信息存储在IIS进程当中,当IIS关闭、重起后这些进程信息都会丢失,
但这种模式的性能最高(具体没测,看书上说),这种模式是的默认方式。
由于这种模式出现了故障,当时我的考虑就是由于访问量过大的原因,导致Inetinfo.exe进程崩溃。用户难以登陆以致Session丢值出现故障,
我采用了另外一种Session的存储方式把Session信息存储在进程外。
首先,打开管理工具找到服务,找到名为: State Service的服务,启动它.并且改成自动启动。这时你可以在任务管理器中看到一个

综合练习

综合练习

综合练习题2一、判断题1)Application对象只能记录变量、字符串、日期等简单的数据类型。

错2)Session对象记录的是所有浏览器端共享的变量,而Application对象记录的则是个别浏览器端专用的变量。

错3)Global.asa文件只有存放在网站的根目录下才能正常运行。

对4)Response中的Redirect方法可使浏览器连接到其他URL。

对5)在聊天室程序中,一般使用Application对象来存储在线人数。

对6)Response对象的Mappath方法可以将虚拟路径转化为物理路径。

对7)<%Session.abandon%>意思为:删除所有存储在Session中的对象并释放资源。

对8)Unlock方法用于解除ASP页面锁定的Application对象。

对9)在Form中使用GET方法把数据提交到服务器端的某一个ASP文件中,那么在该文件的程序中,可以使用10)11)12)13)同14)15)16)17)18)19)错20)21)22)23)24)25)26)27)28)在1)B.Request.ServerVariables("REMOTE_IP")C.Request.ClientCertificate("REMOTE_ADDR")D.Request.ClientCertificate("REMOTE_IP")2)执行完如下语句后,页面上显示的内容为(B)<%Response.Write"A"Response.EndResponse.Write"B"%>A.ABB. AC.ACD.ABC3)请问下面程序段执行完毕,页面上显示内容是(A)<%Response.Write"<a%>A.新浪B.<aC.新浪(超链接)D.该句有错,无法正常输出4)Session对象的默认有效期为(C)分钟?A.10B.15C.20D. 55)请问下面程序段执行完毕,页面上显示内容是(A)<%Response.WriteServer.HTMLEncode("<a%>A.新浪B.<aC.D.6)A.B.C.D.7)A.B.C.D.8)方法方法9)在10)A.Get11)B.C.Session和Applcation对象的事件处理过程,必须放在该文件中,以便相应事件的运用D.该文件中,用户必须使用ASP所支持的脚本语言并定义在标记<Script>之内。

如何使用StateServer保存Session(解决Session过期问题)

如何使用StateServer保存Session(解决Session过期问题)

如何使用‎S tate‎S erve‎r保存‎S essi‎o n作者‎:厦门邦初‎出处:厦门‎邦初点击数‎:27 时‎间:201‎0-8-1‎3使用‎S tate‎S erve‎r保存‎S essi‎o n需要注‎意事项:‎1、ti‎m eout‎=”20″‎为Sess‎i on 2‎0分钟超时‎2、I‎P地址(‎可以是远程‎计算机 I‎P、计算机‎名称、域名‎)与端口号‎,端口号需‎与ASP.‎N ET S‎t ate ‎S ervi‎c e 的服‎务端口一致‎Pos‎t by ‎r oydu‎x, 20‎08-4-‎23, V‎i ews:‎89 正常‎操作情况下‎S essi‎o n会无故‎丢失。

因为‎程序是在不‎停的被操作‎,排除Se‎s sion‎超时的可能‎。

另外,S‎e ssio‎n超时时间‎被设定成6‎0分钟,不‎会这么快就‎超时的。

‎‎‎这次‎到CSDN‎上搜了一下‎帖子,发现‎好多人在讨‎论这个问题‎,然后我又‎g oogl‎e了一下,‎发现微软网‎站上也有类‎似的内容。

‎‎‎现‎在我就把原‎因和解决办‎法写出来。

‎‎‎原‎因:‎‎‎由于As‎‎程序是默认‎配置,所以‎W eb.C‎o nfig‎文件中关于‎S essi‎o n的设定‎如下:‎‎<ses‎s ionS‎t ate ‎ mo‎d e=’I‎n Proc‎’‎s tate‎C onne‎c tion‎S trin‎g=’tc‎p ip=1‎27.0.‎0.1:4‎2424’‎s‎q lCon‎n ecti‎o nStr‎i ng=’‎d ata ‎ so‎u rce=‎127.0‎.0.1;‎T rust‎e d_Co‎n nect‎i on=y‎e s’ ‎coo‎k iele‎s s=’t‎r ue’ ‎ ti‎m eout‎=’60’‎/> ‎‎‎我们会发‎现sess‎i onSt‎a te标签‎中有个属性‎m ode,‎它可以有3‎种取值:I‎n Proc‎、Stat‎e Serv‎e r?SQ‎L Serv‎e r(大小‎写敏感)‎。

asp中设置session过期时间方法总结

asp中设置session过期时间方法总结

asp中默认session过期时间为20分钟,很多情况下不够,今天有客户要求很多就要重新登录了,所以准备了这篇文章,方便需要的朋友。

如果程序中没有设置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.SessionIDCurrentPage=Request.ServerVariables("SCRIPT_NAME")Response.AppendT olog who & ":" & CurrentPageResponse.write "<center>你的会话标识为:" & who & "<p>"Response.write "你当前访问的页面路径为:" & CurrentPage & "<p>"if Session("I")="" thensession("i")=1elsesession("i")=session("i")+1end ifSession.AbandonResponse.write "本页面被你刷新了" & Session("i") & "次。

Session的有效期设置

Session的有效期设置

Session的有效期设置⽅式⼀:在web.xml中设置session-config如下:<session-config><session-timeout>2</session-timeout></session-config>即客户端连续两次与服务器交互间隔时间最长为2分钟,2分钟后session.getAttribute()获取的值为空API信息:session.getCreationTime() 获取session的创建时间session.getLastAccessedTime() 获取上次与服务器交互时间session.getMaxInactiveInterval() 获取session最⼤的不活动的间隔时间,以秒为单位120秒。

<!-- 登录状态过滤,可以过滤掉不需要进⾏超时验证的url --><filter><filter-name>loginFilter</filter-name><filter-class>com.software.filter.LoginFilter</filter-class></filter><filter-mapping><filter-name>loginFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!---以上代码指明具体的路径,具体的代码见附录>⽅式⼆:在Tomcat的/conf/web.xml中session-config,默认值为:30分钟<session-config><session-timeout>30</session-timeout></session-config>⽅式三:在Servlet中设置HttpSession session = request.getSession();session.setMaxInactiveInterval(60);//单位为秒说明:1.优先级:Servlet中API设置 > 程序/web.xml设置 > Tomcat/conf/web.xml设置2.若访问服务器session超时(本次访问与上次访问时间间隔⼤于session最⼤的不活动的间隔时间)了,即上次会话结束,但服务器与客户端会产⽣⼀个新的会话,之前的session⾥的属性值全部丢失,产⽣新的sesssionId3.客户端与服务器⼀次有效会话(session没有超时),每次访问sessionId相同,若代码中设置了session.setMaxInactiveInterval()值,那么这个session的最⼤不活动间隔时间将被修改,并被应⽤为新值。

详解ASP.NET中Session的用法

详解ASP.NET中Session的用法

当用户在应用程序的页之间跳转时,存储在Session 对象中的变量不会清除,而用户在应用程序中访问页面时,这些变量始终存在。

当用户请求来自应用程序的Web 页时,如果该用户还没有会话,则Web 服务器将自动创建一个Session 对象。

当会话过期或被放弃后,服务器将终止该会话。

通过向客户程序发送唯一的Cookie 可以管理服务器上的Session 对象。

当用户第一次请求ASP 应用程序中的某个页面时,ASP 要检查HTTP 头信息,查看是否有在报文中有名为ASPSESSIONID 的Cookie 发送过来,如果有,则服务器会启动新的会话,并为该会话生成一个全局唯一的值,在把这个值作为新ASPSESSIONID Cookie 的值发送给客户端,正是使用这种Cookie,可以访问存储在服务器上的属于客户程序的信息。

Session 对象最常见的作用就是存储用户的首选项。

例如,如果用户指明不喜欢查看图形,就可以将该信息存储在Session 对象中。

另外其还经常被用在鉴别客户身份的程序中。

要注意的是,会话状态仅在支持cookie 的浏览器中保留,如果客户关闭了Cookie 选项,Session 也就不能发挥作用了。

(一)Session的基本属性:一、属性1、SessionIDSessionID 属性返回用户的会话标识。

在创建会话时,服务器会为每一个会话生成一个单独的标识。

会话标识以长整形数据类型返回。

在很多情况下SessionID 可以用于WEB 页面注册统计。

2、TimeOutTimeout 属性以分钟为单位为该应用程序的Session 对象指定超时时限。

如果用户在该超时时限之内不刷新或请求网页,则该会话将终止。

二、方法Session 对象仅有一个方法,就是Abandon,Abandon 方法删除所有存储在Session 对象中的对象并释放这些对象的源。

如果您未明确地调用Abandon 方法,一旦会话超时,服务器将删除这些对象。

session过期时间设置说明

session过期时间设置说明

session过期时间设置说明一.系统session配置说明针对承保(prpall)、双核(undwrt)系统中,有两个配置文件可以设置session的过期时间分别是web.xml和weblogic.xmlWeb.xml中配置<session-config><session-timeout>60</session-timeout></session-config>时间单位是一分钟,并且只能是整数,如果是零或负数,那么会话就永远不会超时。

此例表示Session将在60分钟后过期weblogic.xml中设置的TimeoutSecs属性值。

Weblogic.xml中配置<session-param><param-name>TimeoutSecs</param-name><param-value>1800</param-value></session-param>时间单位是一秒钟,表示1800秒后失效。

1.如果两个配置文件中都有配置,且Weblogic.xml中配置的秒数必须可以被60整除,(如60,120等)。

则按照时间最小的那个为准。

2.如果两个配置文件中都有配置,且Weblogic.xml中配置的秒数必须不可以被60整除(如,45,90等)。

则以web.xml设置的时间为准。

3.如果web.xml文件中没有设置,且Weblogic.xml中有配置。

则按照Weblogic.xml 的设置为准。

4.为保证session的唯一性,在weblogic环境下,建议只在weblogic.xml中设置。

防止出现冲突。

二.疑问1.web.xml,weblogic.xml同时配置时,为什么会是以时间小的为准?暂时无解。

2.对应的weblogic.xml 必须配置为分钟的整数倍?如web=2m weblogic=90s,最终为以web为准。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

asp中默认session过期时间为20分钟,很多情况下不够,今天有客户要求很多就要重新登录了,所以准备了这篇文章,方便需要的朋友。

如果程序中没有设置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.SessionIDCurrentPage=Request.ServerVariables("SCRIPT_NAME")Response.AppendTolog who & ":" & CurrentPageResponse.write "<center>你的会话标识为:" & who & "<p>"Response.write "你当前访问的页面路径为:" & CurrentPage & "<p>"if Session("I")="" thensession("i")=1elsesession("i")=session("i")+1end ifSession.AbandonResponse.write "本页面被你刷新了" & Session("i") & "次。

</centr>"%>应用中,很多人会遇到Session过期设置有冲突。

其中,可以有四处设置Session 的过期时间:一、全局网站(即服务器)级IIS-网站-属性--编辑配置-状态管理-会话超时(分钟)-设置为120,即为2小时,即120分钟后如果当前用户没有操作,那么Session就会自动过期。

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

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

如果“编辑配置”,则只对当前网站生效。

因为一个服务器可能有很多独立网站。

1、继续选择“状态管理”-会话超时(分钟)-设置为360,即360分钟。

效果同上,只不过只对当前网站生效。

2、身份认证-Forms-Cooke超时,选择"12:00:00",即12个小时。

可选项共有以下八项:00:15:0000:30:0001:00:0002:00:0004:00:0008:00:0012:00:001: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);其中,二和三的设置,体现在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过期时间没有生效的,请检查以上几处配置网上找到的其它方法1、操作系统:Widnows Server 2003步骤:开始——〉管理工具——〉Internet信息服务(IIS)管理器——〉网站——〉默认网站——〉右键“属性”——〉主目录——〉配置——〉选项——〉启用会话状态——〉会话超时(在这儿设置你要的超时时间,单位分钟)。

确定即可。

2、应用程序中Session过期时间的设置在这样的Web应用中,Session是用来保存用户状态的常用手段,不过由于服务器内存空间是有限的,所以Session过期时间设置是很有必要的。

在中如何设置Session的过期时间呢,很简单,修改web.config配置。

具体修改方法如下,在web.config中进行如下配置<system.web><sessionState mode="InProc" timeout="30"/></system.web>在这里指的是Session过期时间为30分钟。

也就是说30分钟后如果当前用户没有操作,那么Session就会自动过期了。

3、在调用Session的cs页中,Load事件里面写以下Session.Timeout = 30;4、Store session in 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=" />。

相关文档
最新文档