佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > asp中設(shè)置session過(guò)期時(shí)間方法總結(jié)

asp中設(shè)置session過(guò)期時(shí)間方法總結(jié)

熱門(mén)標(biāo)簽:團(tuán)購(gòu)網(wǎng)站 服務(wù)器配置 Mysql連接數(shù)設(shè)置 銀行業(yè)務(wù) 阿里云 Linux服務(wù)器 科大訊飛語(yǔ)音識(shí)別系統(tǒng) 電子圍欄
如果程序中沒(méi)有設(shè)置session的過(guò)期時(shí)間,那么session過(guò)期時(shí)間就會(huì)按照IIS設(shè)置的過(guò)期時(shí)間來(lái)執(zhí)行,IIS中session默認(rèn)過(guò)期時(shí)間為20分鐘,IIS中session時(shí)間可以更改

時(shí)間設(shè)置要放在前面

例如
復(fù)制代碼 代碼如下:

Session.Timeout=30 'SEESION有效時(shí)間為30分鐘
Session("ID")=Rs("id")
Session("Name")=Rs("Name")
Session("Pass")=Rs("Pass"


利用 Session.Timeout 屬性設(shè)置超時(shí)時(shí)限

對(duì)于一個(gè)登錄到 ASP 應(yīng)用程序的用戶,如果用戶在系統(tǒng)默認(rèn)的時(shí)間內(nèi)未進(jìn)行其它任何操作,當(dāng)設(shè)置的時(shí)間一到便自動(dòng)撤銷(xiāo)這個(gè)用戶的 Session,這樣就可以防止系統(tǒng)的資源被浪費(fèi)。Session 對(duì)象的 TimeOut 屬性可以用來(lái)設(shè)置“過(guò)期時(shí)間”,已分鐘為單位,其設(shè)置格式為:

復(fù)制代碼 代碼如下:

Session.TimeOut=MaxTime

實(shí)例代碼:(5.asp)頁(yè)面,本實(shí)例說(shuō)明如何控制會(huì)話的結(jié)束。
復(fù)制代碼 代碼如下:

%@ language="vbscript" %>
% session.timeout=60 %>
html>
head>title>控制會(huì)話的結(jié)束時(shí)間/title>head>
body>
%
who = Session.SessionID
CurrentPage=Request.ServerVariables("SCRIPT_NAME")
Response.AppendTolog who ":" CurrentPage
Response.write "center>你的會(huì)話標(biāo)識(shí)為:" who "p>"
Response.write "你當(dāng)前訪問(wèn)的頁(yè)面路徑為:" CurrentPage "p>"
if Session("I")="" then
session("i")=1
else
session("i")=session("i")+1
end if
Session.Abandon
Response.write "本頁(yè)面被你刷新了" Session("i") "次。/centr>"
%>


Asp.net應(yīng)用中,很多人會(huì)遇到Session過(guò)期設(shè)置有沖突。其中,可以有四處設(shè)置Session的過(guò)期時(shí)間:

一、全局網(wǎng)站(即服務(wù)器)級(jí)

IIS-網(wǎng)站-屬性-Asp.net-編輯配置-狀態(tài)管理-會(huì)話超時(shí)(分鐘)-設(shè)置為120,即為2小時(shí),即120分鐘后如果當(dāng)前用戶沒(méi)有操作,那么Session就會(huì)自動(dòng)過(guò)期。

二、網(wǎng)站級(jí)

IIS-網(wǎng)站-具體網(wǎng)站(如DemoSite)-屬性-Asp.net,此時(shí)有兩個(gè)選項(xiàng),一個(gè)是“編輯全局配置”,一個(gè)是“編輯配置”。
如果“編輯全局配置”,就和上個(gè)配置一樣。
如果“編輯配置”,則只對(duì)當(dāng)前網(wǎng)站生效。因?yàn)橐粋€(gè)服務(wù)器可能有很多獨(dú)立網(wǎng)站。
1、繼續(xù)選擇“狀態(tài)管理”-會(huì)話超時(shí)(分鐘)-設(shè)置為360,即360分鐘。效果同上,只不過(guò)只對(duì)當(dāng)前網(wǎng)站生效。
2、身份認(rèn)證-Forms-Cooke超時(shí),選擇"12:00:00",即12個(gè)小時(shí)??蛇x項(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
即最長(zhǎng)24小時(shí),最小15分鐘。這是默認(rèn)的配置。在應(yīng)用中可以自由定制。

三、應(yīng)用程序級(jí)

同網(wǎng)站管理,只不過(guò)作用域僅限當(dāng)前應(yīng)用程序。

四、頁(yè)面級(jí)

在某頁(yè)面中,設(shè)置Session.Timeout = 30;即可臨時(shí)修改某頁(yè)面的會(huì)話過(guò)期時(shí)間。
查看某個(gè)Session的過(guò)期時(shí)間,可以用
復(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)先級(jí)為頁(yè)面級(jí)>應(yīng)用程序級(jí)>網(wǎng)站級(jí)>服務(wù)器級(jí)。換句話說(shuō),如果頁(yè)面設(shè)置為20分鐘,網(wǎng)站設(shè)置為120分鐘,那么,顯然以20分鐘為生效的過(guò)期時(shí)間。

另外一個(gè)值得注意 的地方。

在設(shè)置二處,設(shè)置會(huì)話超時(shí)(SessionState)120分鐘,而同時(shí)用forms認(rèn)證,設(shè)置為“00:15:00”,即15分鐘,并且slidingExpirationo為false,則真正生效的Session過(guò)期時(shí)間是多少呢?

有效的結(jié)果是SessionState的設(shè)置,即120分鐘。

如果有設(shè)置Session過(guò)期時(shí)間沒(méi)有生效的,請(qǐng)檢查以上幾處配置

網(wǎng)上找到的其它方法

1、操作系統(tǒng):Widnows Server 2003
  步驟:開(kāi)始——〉管理工具——〉Internet信息服務(wù)(IIS)管理器——〉網(wǎng)站——〉默認(rèn)網(wǎng)站——〉右鍵“屬性”——〉主目錄——〉配置——〉選項(xiàng)——〉啟用會(huì)話狀態(tài)——〉會(huì)話超時(shí)(在這兒設(shè)置你要的超時(shí)時(shí)間,單位分鐘)。確定即可。
  2、ASP.NET應(yīng)用程序中Session過(guò)期時(shí)間的設(shè)置
  在ASP.NET這樣的Web應(yīng)用中,Session是用來(lái)保存用戶狀態(tài)的常用手段,不過(guò)由于服務(wù)器內(nèi)存空間是有限的,所以Session過(guò)期時(shí)間設(shè)置是很有必要的。在ASP.NET中如何設(shè)置Session的過(guò)期時(shí)間呢,很簡(jiǎn)單,修改web.config配置。
  具體修改方法如下,在web.config中進(jìn)行如下配置
復(fù)制代碼 代碼如下:

  system.web>
  sessionState mode="InProc" timeout="30"/>
  /system.web>

  在這里指的是Session過(guò)期時(shí)間為30分鐘。也就是說(shuō)30分鐘后如果當(dāng)前用戶沒(méi)有操作,那么Session就會(huì)自動(dòng)過(guò)期了。
  3、在調(diào)用Session的cs頁(yè)中,Load事件里面寫(xiě)以下
復(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=" />
您可能感興趣的文章:
  • php 如何設(shè)置一個(gè)嚴(yán)格控制過(guò)期時(shí)間的session
  • java設(shè)置session過(guò)期時(shí)間的實(shí)現(xiàn)方法
  • php中實(shí)現(xiàn)精確設(shè)置session過(guò)期時(shí)間的方法
  • php中session過(guò)期時(shí)間設(shè)置及session回收機(jī)制介紹
  • 在ASP.NET中,設(shè)置Session的過(guò)期時(shí)間的方法
  • 用django設(shè)置session過(guò)期時(shí)間的方法解析

標(biāo)簽:萍鄉(xiāng) 衢州 衡水 蚌埠 廣元 棗莊 江蘇 大理

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《asp中設(shè)置session過(guò)期時(shí)間方法總結(jié)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    台湾省| 勐海县| 桐庐县| 融水| 阿拉善左旗| 道孚县| 大英县| 沅江市| 长乐市| 招远市| 芦溪县| 金山区| 河东区| 京山县| 手游| 池州市| 汉寿县| 冀州市| 吉林省| 洞口县| 康定县| 白水县| 忻州市| 玉环县| 宁乡县| 射洪县| 中江县| 安龙县| 儋州市| 仪陇县| 邹平县| 灵川县| 璧山县| 建德市| 札达县| 邵阳县| 武义县| 盈江县| 西青区| 荔波县| 河池市|