婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > asp.net中session的原理及應用詳解

asp.net中session的原理及應用詳解

熱門標簽:電話機器人廣告話術 淘寶地圖標注如何做 保山電話外呼管理系統(tǒng)怎么用 太原外呼電銷機器人費用 使用智能電話機器人違法嗎 東莞語音電銷機器人排名 蘇州銷售外呼系統(tǒng)預算 外呼系統(tǒng)用員工身份證 朝陽市地圖標注
Session簡介丶特性
--------------------------------------------------------------------------------
1.Session是一種Web會話中的常用狀態(tài)之一。
2.Session提供了一種把信息保存在服務器內(nèi)存中的方式。他能儲存任何數(shù)據(jù)類型,包含自定義對象。
3.每個客戶端的Seesion是獨立存儲的。
4.在整個會話過程中,只要SessionID的cookie不丟失,都會保存Session信息的。
5.Session不能跨進程訪問,只能由該會話的用戶訪問。應為提取Session數(shù)據(jù)的id標識是以Cookie的方式保存到訪問者瀏覽器的緩存里的。
6.當會話終止,或過期時,服務器就清除Session對象。
7.Session常用于保存登錄用戶的ID.
8.Session保存的數(shù)據(jù)是跨頁面全局型的。
--------------------------------------------------------------------------------
Session的使用
--------------------------------------------------------------------------------
這里我寫入一個例子,便于下面闡述。
復制代碼 代碼如下:

head runat="server">
title>/title>
script src="Scripts/jquery-1.4.1.min.js" type="text/javascript">/script>
script type="text/javascript">
function getSessionClick(action) { //這個函數(shù)是為了知道哪一個提交按鈕被點擊
$("#hidlgc").val(""); //清空隱藏值
$("#hidlgc").val(action); //給隱藏控件賦值
}
/script>
/head>
body>
form id="form1" method="post" action="MySession.aspx">
table>
tr>
td>賬號:/td>td>input type="text" name="txtUid" />/td>`
/tr>
tr>
td>密碼:/td>td>input type="password" name="txtPwd" />/td>
/tr>
tr>
td colspan="2">
input type="hidden" value="" id="hidlgc" name="hidlgclick" />
input onclick="getSessionClick('lgclick')" type="submit" value="登錄" />
input type="submit" onclick="getSessionClick('getSession')" value="獲取session" />
input type="submit" onclick="getSessionClick('backLg')" value="退出登錄" />
/td>
/tr>
/table>
/form>
/body>

復制代碼 代碼如下:

protected void Page_Load(object sender, EventArgs e)
{
//把用戶id寫入session中
if (Request.Form["hidlgclick"] == "lgclick")
{
if(Request.Form["txtUid"].ToString()=="admin"Request.Form["txtUid"].ToString()=="admin") //判斷用戶登錄
{
Session["userName"] = Request.Form["txtUid"].ToString(); //把用戶id保存到session中
Response.Write(Session["userName"].ToString()+"---點擊登錄"); //獲取session,并寫入頁面
}
}
//獲取Session
if (Request.Form["hidlgclick"] == "getSession")
{
if (Session["userName"] != null)
{
Response.Write(Session["userName"].ToString() + "---點擊獲取session"); //獲取session,并寫入頁面
}
}
//取消當前會話,相當于注銷(退出登錄)。
if (Request.Form["hidlgclick"] == "backLg")
{
Session.Abandon();
}
}

復制代碼 代碼如下:

system.web>
sessionState timeout="40">/sessionState> !---設置session的過期時間,時間以分鐘為單位-->
 

Session原理(根據(jù)上面例子闡述)
--------------------------------------------------------------------------------
一、session是怎么存儲,提取的?
1.在服務器端有一個session池,用來存儲每個用戶提交session中的數(shù)據(jù),Session對于每一個客戶端(或者說瀏覽器實例)是“人手一份”,用戶首次與Web服務器建立連接的時候,服務器會給用戶分發(fā)一個SessionID作為標識。SessionID是一個由24個字符組成的隨機字符串。用戶每次提交頁面,瀏覽器都會把這個SessionID包含在HTTP頭中提交給Web服務器,這樣Web服務器就能區(qū)分當前請求頁面的是哪一個客戶端,而這個SessionID是一cookie的方式保存的在客戶端的內(nèi)存中的,如果想要得到Session池中的數(shù)據(jù),服務器就會根據(jù)客戶端提交的唯一SessionID標識給出相應的數(shù)據(jù)返回。
2.輸入正確的賬號密碼,點擊登錄,頁面就會輸出 “admin --- 點擊登錄”
二、Session池中每個客戶端的數(shù)據(jù)是怎么存儲的?
1.存儲在Session池中的數(shù)據(jù)是全局型的數(shù)據(jù),可以跨頁面訪問,每個SessionID中只存儲唯一的數(shù)據(jù),如:首先你這樣設定:session["userName"]="admin",然后你在會話還沒結(jié)束的session還沒過期的情況下,你又設定:session["userName"]="123";這樣這個SessionID沒變,然而Session池中的數(shù)據(jù)則被覆蓋。此時session["userName"]的值就是“123”,而不是其它。
2.Session池中的數(shù)據(jù)不能跨進程訪問。如:打開login.aspx頁面寫入session[“userName”]="admin";然后login頁面不關閉,即此會話不結(jié)束,在這是你再在另外一個瀏覽器中打開一個login.aspx頁面則session["userName"]=null
3.輸入賬號密碼,點擊登錄頁面輸出 “admin --- 點擊登錄” ,如果緊接著點擊獲取session按鈕,則頁面只輸出"admin--- 點擊獲取session",如果頁面不關閉,打開另外一個瀏覽器,點擊獲取session按鈕,則頁面沒法應。
三丶session的聲明周期與銷毀
1.session存儲數(shù)據(jù)計時是滾動計時方式。具體是這樣的,如果你打開寫入session,從寫入開始,此頁面如果一直沒有提交操作,則默認時間是20分鐘,20分鐘后session被服務器自動銷毀,如過有提交操作,服務器會從提交后重新計時以此類推,直至設定時間內(nèi)銷毀。
2.可以設置session的銷毀時間。上面代碼有提到。
四丶session中保存的數(shù)據(jù)是在服務端的,而每個用戶如進行登錄操作,都要進行session數(shù)據(jù)寫入,所以建議慎用session,就是少用。
您可能感興趣的文章:
  • spring-session簡介及實現(xiàn)原理源碼分析
  • 詳解SpringBoot中Session超時原理說明
  • Nodejs 和Session 原理及實戰(zhàn)技巧小結(jié)
  • PHP中怎樣保持SESSION不過期 原理及方案介紹
  • 解析php中session的實現(xiàn)原理以及大網(wǎng)站應用應注意的問題
  • JavaScript如何控制Session實現(xiàn)原理及代碼
  • 深入解析Session工作原理及運行流程

標簽:西藏 阿里 綏化 潛江 克拉瑪依 呼倫貝爾 洛陽 運城

巨人網(wǎng)絡通訊聲明:本文標題《asp.net中session的原理及應用詳解》,本文關鍵詞  asp.net,中,session,的,原理,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《asp.net中session的原理及應用詳解》相關的同類信息!
  • 本頁收集關于asp.net中session的原理及應用詳解的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 怀仁县| 宿松县| 马尔康县| 芜湖市| 鄂托克旗| 高青县| 景德镇市| 达日县| 正安县| 靖宇县| 哈密市| 筠连县| 普安县| 酒泉市| 淮滨县| 同心县| 哈巴河县| 睢宁县| 洛浦县| 柳河县| 天峻县| 盐城市| 陆川县| 青铜峡市| 华容县| 临沧市| 沈丘县| 大同县| 建湖县| 天津市| 鹿邑县| 枣阳市| 黔西| 南木林县| 郧西县| 中超| 抚顺市| 衡山县| 辽宁省| 沈阳市| 大城县|