C#有关Session 操作的几个误区【转】
生活随笔
收集整理的這篇文章主要介紹了
C#有关Session 操作的几个误区【转】
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. this.Session["username"] = null
HttpSessionState 內(nèi)部使用 NameObjectCollection 類型的集合對象來存儲用戶數(shù)據(jù)。因此使用 this.Session["username"] = null 僅僅是將該元素的值設(shè)為 null 而已,并沒有真的將其從 Session 中移除。(為什么?暈~~~ 建議看看 C# 基礎(chǔ)方面的書。)
正確的方法是:this.Session.Remove("username");
刪除全部數(shù)據(jù):this.Session.RemoveAll(); 或 this.Session.Clear();
2. this.Session.Abandon()
該方法會導(dǎo)致當(dāng)前 Session 被取消,系統(tǒng)會觸發(fā) Global.asax 中的 Session_End 事件(僅限于 Mode = InProc 時(shí))。
盡管再次發(fā)出請求時(shí) SessionID (可能)沒有發(fā)生變化,但是你會發(fā)現(xiàn) Global.asax Session_Start 事件被觸發(fā)。你還可以使用 this.Session.IsNewSession 屬性來判斷當(dāng)前 Session 是否重新創(chuàng)建的。
由于某些組件和控件可能要使用 Session 信息(如使用 this.Session.SyncRoot 進(jìn)行同步),因此不要輕易使用該方法清理 Session。
3. 用戶身份驗(yàn)證
不要使用 this.Session["username"] = "ZhangSan" 、if (this.Session["username"] != null) 這樣的方式進(jìn)行用戶身份驗(yàn)證,這種方式既不安全也不合理。有關(guān)身份驗(yàn)證請參考 MSDN 文檔或雨痕寫的相關(guān)文章。
原文鏈接:http://www.cnblogs.com/X-Jonney/archive/2009/03/19/1416699.html
HttpSessionState 內(nèi)部使用 NameObjectCollection 類型的集合對象來存儲用戶數(shù)據(jù)。因此使用 this.Session["username"] = null 僅僅是將該元素的值設(shè)為 null 而已,并沒有真的將其從 Session 中移除。(為什么?暈~~~ 建議看看 C# 基礎(chǔ)方面的書。)
正確的方法是:this.Session.Remove("username");
刪除全部數(shù)據(jù):this.Session.RemoveAll(); 或 this.Session.Clear();
2. this.Session.Abandon()
該方法會導(dǎo)致當(dāng)前 Session 被取消,系統(tǒng)會觸發(fā) Global.asax 中的 Session_End 事件(僅限于 Mode = InProc 時(shí))。
盡管再次發(fā)出請求時(shí) SessionID (可能)沒有發(fā)生變化,但是你會發(fā)現(xiàn) Global.asax Session_Start 事件被觸發(fā)。你還可以使用 this.Session.IsNewSession 屬性來判斷當(dāng)前 Session 是否重新創(chuàng)建的。
由于某些組件和控件可能要使用 Session 信息(如使用 this.Session.SyncRoot 進(jìn)行同步),因此不要輕易使用該方法清理 Session。
3. 用戶身份驗(yàn)證
不要使用 this.Session["username"] = "ZhangSan" 、if (this.Session["username"] != null) 這樣的方式進(jìn)行用戶身份驗(yàn)證,這種方式既不安全也不合理。有關(guān)身份驗(yàn)證請參考 MSDN 文檔或雨痕寫的相關(guān)文章。
原文鏈接:http://www.cnblogs.com/X-Jonney/archive/2009/03/19/1416699.html
轉(zhuǎn)載于:https://www.cnblogs.com/tangself/archive/2010/04/07/1706576.html
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的C#有关Session 操作的几个误区【转】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【探索PowerShell 】【六】脚本
- 下一篇: C#小数点格式化