asp中設(shè)置session過期時間方法總結(jié)
更新時間:2012年09月07日 00:02:28 作者:
asp中默認(rèn)session過期時間為20分鐘,很多情況下不夠,今天有客戶要求很多就要重新登錄了,所以準(zhǔn)備了這篇文章,方便需要的朋友
如果程序中沒有設(shè)置session的過期時間,那么session過期時間就會按照IIS設(shè)置的過期時間來執(zhí)行,IIS中session默認(rèn)過期時間為20分鐘,IIS中session時間可以更改
時間設(shè)置要放在前面
例如
Session.Timeout=30 'SEESION有效時間為30分鐘
Session("ID")=Rs("id")
Session("Name")=Rs("Name")
Session("Pass")=Rs("Pass"
利用 Session.Timeout 屬性設(shè)置超時時限
對于一個登錄到 ASP 應(yīng)用程序的用戶,如果用戶在系統(tǒng)默認(rèn)的時間內(nèi)未進(jìn)行其它任何操作,當(dāng)設(shè)置的時間一到便自動撤銷這個用戶的 Session,這樣就可以防止系統(tǒng)的資源被浪費(fèi)。Session 對象的 TimeOut 屬性可以用來設(shè)置“過期時間”,已分鐘為單位,其設(shè)置格式為:
Session.TimeOut=MaxTime
實(shí)例代碼:(5.asp)頁面,本實(shí)例說明如何控制會話的結(jié)束。
<%@ language="vbscript" %>
<% session.timeout=60 %>
<html>
<head><title>控制會話的結(jié)束時間</title><head>
<body>
<%
who = Session.SessionID
CurrentPage=Request.ServerVariables("SCRIPT_NAME")
Response.AppendTolog who & ":" & CurrentPage
Response.write "<center>你的會話標(biāo)識為:" & who & "<p>"
Response.write "你當(dāng)前訪問的頁面路徑為:" & CurrentPage & "<p>"
if Session("I")="" then
session("i")=1
else
session("i")=session("i")+1
end if
Session.Abandon
Response.write "本頁面被你刷新了" & Session("i") & "次。</centr>"
%>
Asp.net應(yīng)用中,很多人會遇到Session過期設(shè)置有沖突。其中,可以有四處設(shè)置Session的過期時間:
一、全局網(wǎng)站(即服務(wù)器)級
IIS-網(wǎng)站-屬性-Asp.net-編輯配置-狀態(tài)管理-會話超時(分鐘)-設(shè)置為120,即為2小時,即120分鐘后如果當(dāng)前用戶沒有操作,那么Session就會自動過期。
二、網(wǎng)站級
IIS-網(wǎng)站-具體網(wǎng)站(如DemoSite)-屬性-Asp.net,此時有兩個選項(xiàng),一個是“編輯全局配置”,一個是“編輯配置”。
如果“編輯全局配置”,就和上個配置一樣。
如果“編輯配置”,則只對當(dāng)前網(wǎng)站生效。因?yàn)橐粋€服務(wù)器可能有很多獨(dú)立網(wǎng)站。
1、繼續(xù)選擇“狀態(tài)管理”-會話超時(分鐘)-設(shè)置為360,即360分鐘。效果同上,只不過只對當(dāng)前網(wǎng)站生效。
2、身份認(rèn)證-Forms-Cooke超時,選擇"12:00:00",即12個小時。可選項(xiàng)共有以下八項(xiàng):
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分鐘。這是默認(rèn)的配置。在應(yīng)用中可以自由定制。
三、應(yīng)用程序級
同網(wǎng)站管理,只不過作用域僅限當(dāng)前應(yīng)用程序。
四、頁面級
在某頁面中,設(shè)置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);
其中,二和三的設(shè)置,體現(xiàn)在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>
以上四處設(shè)置的優(yōu)先級為頁面級>應(yīng)用程序級>網(wǎng)站級>服務(wù)器級。換句話說,如果頁面設(shè)置為20分鐘,網(wǎng)站設(shè)置為120分鐘,那么,顯然以20分鐘為生效的過期時間。
另外一個值得注意 的地方。
在設(shè)置二處,設(shè)置會話超時(SessionState)120分鐘,而同時用forms認(rèn)證,設(shè)置為“00:15:00”,即15分鐘,并且slidingExpirationo為false,則真正生效的Session過期時間是多少呢?
有效的結(jié)果是SessionState的設(shè)置,即120分鐘。
如果有設(shè)置Session過期時間沒有生效的,請檢查以上幾處配置
網(wǎng)上找到的其它方法
1、操作系統(tǒng):Widnows Server 2003
步驟:開始——〉管理工具——〉Internet信息服務(wù)(IIS)管理器——〉網(wǎng)站——〉默認(rèn)網(wǎng)站——〉右鍵“屬性”——〉主目錄——〉配置——〉選項(xiàng)——〉啟用會話狀態(tài)——〉會話超時(在這兒設(shè)置你要的超時時間,單位分鐘)。確定即可。
2、ASP.NET應(yīng)用程序中Session過期時間的設(shè)置
在ASP.NET這樣的Web應(yīng)用中,Session是用來保存用戶狀態(tài)的常用手段,不過由于服務(wù)器內(nèi)存空間是有限的,所以Session過期時間設(shè)置是很有必要的。在ASP.NET中如何設(shè)置Session的過期時間呢,很簡單,修改web.config配置。
具體修改方法如下,在web.config中進(jìn)行如下配置
<system.web>
<sessionState mode="InProc" timeout="30"/>
</system.web>
在這里指的是Session過期時間為30分鐘。也就是說30分鐘后如果當(dāng)前用戶沒有操作,那么Session就會自動過期了。
3、在調(diào)用Session的cs頁中,Load事件里面寫以下
Session.Timeout = 30;
4、Store session in asp.net 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=" />
時間設(shè)置要放在前面
例如
復(fù)制代碼 代碼如下:
Session.Timeout=30 'SEESION有效時間為30分鐘
Session("ID")=Rs("id")
Session("Name")=Rs("Name")
Session("Pass")=Rs("Pass"
利用 Session.Timeout 屬性設(shè)置超時時限
對于一個登錄到 ASP 應(yīng)用程序的用戶,如果用戶在系統(tǒng)默認(rèn)的時間內(nèi)未進(jìn)行其它任何操作,當(dāng)設(shè)置的時間一到便自動撤銷這個用戶的 Session,這樣就可以防止系統(tǒng)的資源被浪費(fèi)。Session 對象的 TimeOut 屬性可以用來設(shè)置“過期時間”,已分鐘為單位,其設(shè)置格式為:
復(fù)制代碼 代碼如下:
Session.TimeOut=MaxTime
實(shí)例代碼:(5.asp)頁面,本實(shí)例說明如何控制會話的結(jié)束。
復(fù)制代碼 代碼如下:
<%@ language="vbscript" %>
<% session.timeout=60 %>
<html>
<head><title>控制會話的結(jié)束時間</title><head>
<body>
<%
who = Session.SessionID
CurrentPage=Request.ServerVariables("SCRIPT_NAME")
Response.AppendTolog who & ":" & CurrentPage
Response.write "<center>你的會話標(biāo)識為:" & who & "<p>"
Response.write "你當(dāng)前訪問的頁面路徑為:" & CurrentPage & "<p>"
if Session("I")="" then
session("i")=1
else
session("i")=session("i")+1
end if
Session.Abandon
Response.write "本頁面被你刷新了" & Session("i") & "次。</centr>"
%>
Asp.net應(yīng)用中,很多人會遇到Session過期設(shè)置有沖突。其中,可以有四處設(shè)置Session的過期時間:
一、全局網(wǎng)站(即服務(wù)器)級
IIS-網(wǎng)站-屬性-Asp.net-編輯配置-狀態(tài)管理-會話超時(分鐘)-設(shè)置為120,即為2小時,即120分鐘后如果當(dāng)前用戶沒有操作,那么Session就會自動過期。
二、網(wǎng)站級
IIS-網(wǎng)站-具體網(wǎng)站(如DemoSite)-屬性-Asp.net,此時有兩個選項(xiàng),一個是“編輯全局配置”,一個是“編輯配置”。
如果“編輯全局配置”,就和上個配置一樣。
如果“編輯配置”,則只對當(dāng)前網(wǎng)站生效。因?yàn)橐粋€服務(wù)器可能有很多獨(dú)立網(wǎng)站。
1、繼續(xù)選擇“狀態(tài)管理”-會話超時(分鐘)-設(shè)置為360,即360分鐘。效果同上,只不過只對當(dāng)前網(wǎng)站生效。
2、身份認(rèn)證-Forms-Cooke超時,選擇"12:00:00",即12個小時。可選項(xiàng)共有以下八項(xiàng):
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分鐘。這是默認(rèn)的配置。在應(yīng)用中可以自由定制。
三、應(yīng)用程序級
同網(wǎng)站管理,只不過作用域僅限當(dāng)前應(yīng)用程序。
四、頁面級
在某頁面中,設(shè)置Session.Timeout = 30;即可臨時修改某頁面的會話過期時間。
查看某個Session的過期時間,可以用
復(fù)制代碼 代碼如下:
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);
其中,二和三的設(shè)置,體現(xiàn)在Web.config中即:
復(fù)制代碼 代碼如下:
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>
以上四處設(shè)置的優(yōu)先級為頁面級>應(yīng)用程序級>網(wǎng)站級>服務(wù)器級。換句話說,如果頁面設(shè)置為20分鐘,網(wǎng)站設(shè)置為120分鐘,那么,顯然以20分鐘為生效的過期時間。
另外一個值得注意 的地方。
在設(shè)置二處,設(shè)置會話超時(SessionState)120分鐘,而同時用forms認(rèn)證,設(shè)置為“00:15:00”,即15分鐘,并且slidingExpirationo為false,則真正生效的Session過期時間是多少呢?
有效的結(jié)果是SessionState的設(shè)置,即120分鐘。
如果有設(shè)置Session過期時間沒有生效的,請檢查以上幾處配置
網(wǎng)上找到的其它方法
1、操作系統(tǒng):Widnows Server 2003
步驟:開始——〉管理工具——〉Internet信息服務(wù)(IIS)管理器——〉網(wǎng)站——〉默認(rèn)網(wǎng)站——〉右鍵“屬性”——〉主目錄——〉配置——〉選項(xiàng)——〉啟用會話狀態(tài)——〉會話超時(在這兒設(shè)置你要的超時時間,單位分鐘)。確定即可。
2、ASP.NET應(yīng)用程序中Session過期時間的設(shè)置
在ASP.NET這樣的Web應(yīng)用中,Session是用來保存用戶狀態(tài)的常用手段,不過由于服務(wù)器內(nèi)存空間是有限的,所以Session過期時間設(shè)置是很有必要的。在ASP.NET中如何設(shè)置Session的過期時間呢,很簡單,修改web.config配置。
具體修改方法如下,在web.config中進(jìn)行如下配置
復(fù)制代碼 代碼如下:
<system.web>
<sessionState mode="InProc" timeout="30"/>
</system.web>
在這里指的是Session過期時間為30分鐘。也就是說30分鐘后如果當(dāng)前用戶沒有操作,那么Session就會自動過期了。
3、在調(diào)用Session的cs頁中,Load事件里面寫以下
復(fù)制代碼 代碼如下:
Session.Timeout = 30;
4、Store session in asp.net state service
復(fù)制代碼 代碼如下:
<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=" />
相關(guān)文章
使用AJAX實(shí)現(xiàn)UTF8編碼表單提交到GBK編碼腳本無亂碼的解決方法
這篇文章主要介紹了用AJAX實(shí)現(xiàn),多個不同編碼的項(xiàng)目(GBK,UTF8)互相通過 POST/GET 匯總表單數(shù)據(jù)。最終實(shí)現(xiàn) 使用同一個頁面接收 不同編碼的 表單(GBK,UTF8),特別適合 JS 采集項(xiàng)目,需要的朋友可以參考下2020-09-09rs.open sql,conn,1,1與rs.open sql,conn,1.3還有rs.open sql,conn,
Rs.Open語法如下:rs.Open Source,ActiveConnection,CursorType,LockType Source為sql語句,ActiveConnection為數(shù)據(jù)庫連接,CursorType是游標(biāo),LockType是數(shù)據(jù)鎖定類型.2011-01-01ASP動態(tài)網(wǎng)頁制作技術(shù)經(jīng)驗(yàn)分享
本文介紹的是ASP動態(tài)網(wǎng)頁制作技術(shù)的一些經(jīng)驗(yàn)心得,主要從四個大的方面,給大家介紹的,需要的朋友可以參考下2015-10-10Js獲取asp頁面返回的值(加載值)實(shí)現(xiàn)代碼
本文詳細(xì)介紹Js獲取asp頁面返回的值(加載值)實(shí)現(xiàn)方法,需要了解的朋友可以參考下2012-12-12