1. 程式人生 > >詳解Session過期時間

詳解Session過期時間

最近專案中遇到需要對單個Session的過期時間進行特殊處理

很多人是這樣理解的

---------------------------------------------------------------------------------------------

protected void SetSession()

{

Session["user"]="UserName";

Session.Timeout = 20;

}

20是分鐘

這是對單個的設定,

對整體應該在Web.config裡修改

<sessionState mode="InProc" cookieless="true" timeout="20"/>

---------------------------------------------------------------------------------------------

但是看看Session.Timeout = 20;這句,根本就不像對單個Session進行處理,而像是對所有的Session進行處理,於是動手做了個demo驗證一下

Default.aspx

protected void Page_Load(object sender, EventArgs e)
        {
            Response.Write("user1:" + Session["user1"]);
            Response.Write("user2:" + Session["user2"]);
        }
User1.aspx
protected void Page_Load(object sender, EventArgs e)
        {
            Session["user1"] = "user1";
            Session.Timeout = 2;
        }
user2.aspx
protected void Page_Load(object sender, EventArgs e)
        {
            Session["user2"] = "user2";
            Session.Timeout = 1;
        }
編譯後,我進行了以下測試:

1.按照以下順序執行了上面的3個頁面:User1.aspx、User2.aspx、Default.aspx,顯示“user1:user1user2:user2”。如果按照其它人理解的那樣,應該過了一分鐘後,顯示為:“user1:user1user2:”,實際上的顯示結果為:“user1:user2:”,說明後面的Session.Timeout = 1影響到了前面的Session.Timeout = 2。

2.按照以下順序執行了上面的3個頁面:User2.aspx、User1.aspx、Default.aspx,顯示“user1:user1user2:user2”。如果按照其它人理解的那樣,應該過了一分鐘後,顯示為:“user1:user1user2:”,實際上的顯示結果為:“user1:user1user2:user2”,說明後面的Session.Timeout = 2影響到了前面的Session.Timeout = 1。

由此證明,Session.TimeOut是會影響全部Session的,Session的過期時間是從你最後的一次操作開始計時的。

相關推薦

Session過期時間

最近專案中遇到需要對單個Session的過期時間進行特殊處理 很多人是這樣理解的 --------------------------------------------------------------------------------------------- pr

【l轉】php中session過期時間設定及回收機制

php中session過期時間設定及回收機制詳解: 修改php中的session過期時間可以修改php配置檔案php.ini中的session.gc_maxlifetime即可。 當php每發出一次請求時,會有1/100的概率(預設值)觸發"session回收"。如果"session回收"發生,那就會檢查

YII2 設置session過期時間

iss cookie style use 沒有 var nts session itl 設置session過期時間 如何在YII裏設置SESSION過期時間,而不需要在php.ini裏面設置。 在protected/config/main.php裏,設置: 代碼如下

如何嚴格設置php中session過期時間

基本原理 默認 方法 path bag 當前時間 並不會 itl ring 如何嚴格限制session在30分鐘後過期!1.設置客戶端cookie的lifetime為30分鐘;2.設置session的最大存活周期也為30分鐘;3.為每個session值加入時間戳,然後在程序

PHP如何嚴格控制session過期時間

解決 請求 tro href 客戶端 manual 優惠劵 article 添加 第一種回答 那麽, 最常見的一種回答是: 設置Session的過期時間, 也就是session.gc_maxlifetime, 這種回答是不正確的, 原因如下: 1. 首先, 這個PHP是用一

【後端-session-過期時間

程式中session都有一個預設的過期時間,其中tomcat中的預設時間為30分鐘,根據需要我們可以去手動設定session的過期時間,以下是設定session的過期時間的三個方法: 1.在tomcat-->conf-->conf/web.xm中的<session-config&

Python時間獲取,Django獲取時間,模板中獲取時間(navie時間和aware時間

# 1、Python獲取到的時間 import pytz from datetime import datetime now = datetime.now() # 這個時間為navie時間(自己不

session過期時間的設定

這裡說說session過期時間的設定,一般來說方法有四種: 1. 在 tomcat——>conf——>servler.xml檔案中定義: <Context path="/test" docBase="/test" defaultSessionTimeOut

php-session過期時間設定(設定免登陸過期時間

今天用tp框架做一個登陸介面的時候,對於session的過期時間這個問題表費解,例如如何設定一個準確的session過期時間。 通過自己看tp的官方文件,裡面只提到了兩個,但是這兩個一個是session.gc_maxlifetime ,一個是cookie.session_lifetime。但是

session、cookie、記住我的登入狀態

Cookie的機制 Cookie是瀏覽器(User Agent)訪問一些網站後,這些網站存放在客戶端的一組資料,用於使網站等跟蹤使用者,實現使用者自定義功能。 Cookie的Domain和Path屬性標識了這個Cookie是哪一個網站傳送給瀏覽器的;Cookie的Expires屬性標識了Co

匈牙利演算法(含時間複雜度)

尋找二部圖最大匹配的匈牙利數學家埃德蒙德斯在1965年提出的一個簡化的最大流演算法。該演算法根據二部圖匹配這個問題的特點將最大流演算法進行了簡化,提高了效率。 普通的最大流演算法一般都是基於帶權網路模型的,二部圖匹配問題不需要區分圖中的源點和匯點,也不關心邊的方向,因此不需要複雜的網路圖模型,這就是匈牙利演

spring boot實戰之shiro session過期時間

在spring boot內,設定session過期時間只需在application.properties內新增server.session.timeout配置即可。在整合shiro時發現,server.session.timeout設定為7200,但未到2小時就

thinkphp中session過期時間的配置

thinkphpsession過期週期是無效的 現在修改一下 一、修改tp的公共檔案 Thinkphp/Common/functions.php 將 if(isset($name['expire']))          ini_set('session.gc_maxlif

設定Django 中的session過期時間的方法

request.session.set_expiry(value)  你可以傳遞四種不同的值給它:  * 如果value是個整數,session會在些秒數後失效(適用於整個Django框架,即這個數值時效時整個頁面都會session失效)。  * 如果value是個data

django 設定session過期時間

session的超時時間設定settings中SESSION_COOKIE_AGE=60*30 30分鐘。SESSION_EXPIRE_AT_BROWSER_CLOSE False:會話cookie可以在使用者瀏覽器中保持有效期。True:關閉瀏覽器,則Cookie失效。S

為什麼要設定session過期時間

 1)節省伺服器資源:使用者可能已經關閉了瀏覽器,而沒有通過“登出”按鈕,這就導致服 務器不知道使用者已經不再使用系統了,這時候如果此使用者的相關session仍然存在,就沒有必要了。所以需要設定過期時間  2)安全:使用者長時間未操作,可能已經離開電腦做別的去了,這時候如

php session過期時間設定,純新手教學

t.php 操作方法:首先開啟t.php,然後開啟t2.php,不停地重新整理t2.php,就會不停的輸出username的值。而如果5秒之內不重新整理t2.php,就會發現,儲存的session值為空了 <?php function setSession

ASP中如何延長session過期時間

登陸頁內寫如下語句: if 登陸成功 then session("userid")=rs("id") session.timeout=1000 end if 在需要的地方判斷 if session("userid")="" then resposne.w

PHP session過期時間設定(轉)

1:設定以下兩項為有效時間 session.cookie_lifetime session.gc_maxlifetime Session有效期的引數是session.gc_maxlifetime 2:設定 session.gc_probability = 1 sessio

Session的生命週期

在進行WEB Application開發的時候,很多程式設計師在理解Session的時候,常常會被誤導,錯誤的認為:一個瀏覽器只有一個Session, 瀏覽器關閉Session就消失了。其實這是不正確的。(很多程式設計師是去baidu,或者google一下,只解決了當下的問