asp中設(shè)置session過期時(shí)間方法總結(jié)?
如果程序中沒有設(shè)置session的過期時(shí)間,那么session過期時(shí)間就會(huì)按照IIS設(shè)置的過期時(shí)間來執(zhí)行,IIS中session默認(rèn)過期時(shí)間為20分鐘,IIS中session時(shí)間可以更改
如果程序中設(shè)置了session過期時(shí)間,那么,即使你將IIS中session時(shí)間設(shè)置100小時(shí)也沒有用,因?yàn)槌绦驎?huì)首先按照程序中設(shè)置,只有程序沒設(shè)置的情況下才會(huì)按照IIS設(shè)置的
時(shí)間設(shè)置要放在前面
例如
代碼如下 Session.Timeout=30 'SEESION有效時(shí)間為30分鐘
Session(ID)=Rs(id)
Session(Name)=Rs(Name)
Session(Pass)=Rs(Pass
利用 Session.Timeout 屬性設(shè)置超時(shí)時(shí)限
對于一個(gè)登錄到 asp 應(yīng)用程序的用戶,如果用戶在系統(tǒng)默認(rèn)的時(shí)間內(nèi)未進(jìn)行其它任何操作,當(dāng)設(shè)置的時(shí)間一到便自動(dòng)撤銷這個(gè)用戶的 Session,這樣就可以防止系統(tǒng)的資源被浪費(fèi)。Session 對象的 TimeOut 屬性可以用來設(shè)置過期時(shí)間,已分鐘為單位,其設(shè)置格式為:
代碼如下 Session.TimeOut=MaxTime
實(shí)例代碼:(5.asp)頁面,本實(shí)例說明如何控制會(huì)話的結(jié)束。
代碼如下
%@ language=vbscript %
% session.timeout=60 %
html
headtitle控制會(huì)話的結(jié)束時(shí)間/titlehead
body
%
who = Session.SessionID
CurrentPage=Request.ServerVariables(SCRIPT_NAME)
Response.AppendTolog who : CurrentPage
Response.write center你的會(huì)話標(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)用中,很多人會(huì)遇到Session過期設(shè)置有沖突。其中,可以有四處設(shè)置Session的過期時(shí)間:
一、全局網(wǎng)站(即服務(wù)器)級
IIS-網(wǎng)站-屬性-Asp.net-編輯配置-狀態(tài)管理-會(huì)話超時(shí)(分鐘)-設(shè)置為120,即為2小時(shí),即120分鐘后如果當(dāng)前用戶沒有操作,那么Session就會(huì)自動(dòng)過期。
IIS-網(wǎng)站-具體網(wǎng)站(如DemoSite)-屬性-Asp.net,此時(shí)有兩個(gè)選項(xiàng),一個(gè)是編輯全局配置,一個(gè)是編輯配置。
如果編輯全局配置,就和上個(gè)配置一樣。
如果編輯配置,則只對當(dāng)前網(wǎng)站生效。因?yàn)橐粋€(gè)服務(wù)器可能有很多獨(dú)立網(wǎng)站。
1、繼續(xù)選擇狀態(tài)管理-會(huì)話超時(shí)(分鐘)-設(shè)置為360,即360分鐘。效果同上,只不過只對當(dāng)前網(wǎng)站生效。
2、身份認(rèn)證-Forms-Cooke超時(shí),選擇12:00:00,即12個(gè)小時(shí)。可選項(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小時(shí),最小15分鐘。這是默認(rèn)的配置。在應(yīng)用中可以自由定制。
三、應(yīng)用程序級
同網(wǎng)站管理,只不過作用域僅限當(dāng)前應(yīng)用程序。
四、頁面級
在某頁面中,設(shè)置Session.Timeout = 30;即可臨時(shí)修改某頁面的會(huì)話過期時(shí)間。
查看某個(gè)Session的過期時(shí)間,可以用
代碼如下 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