簡體   English   中英

Session.Clear(),Session.Abandon(),Session.RemoveAll()的MVC優化?

[英]MVC optimization for Session.Clear(), Session.Abandon(), Session.RemoveAll()?

我正在使用一些應該在用戶完成后終止的會話。 我偶然發現了這三場殺手。 何時是使用這些的最佳時間,因為我使用會話的時間比不是。 另外,還有其他會話終止我不知道嗎?

Session.ClearSession.RemoveAll是相同的; 后者只是稱前者。 他們會立即刪除會話中存儲的所有項目,但會話本身仍然存在。 Session_OnEnd不會觸發。

Session.Abandon實際上並不立即清除這些值,它只是標記在當前請求結束時放棄的會話。 您可以繼續讀取請求其余部分的值。 如果您稍后在請求中寫入會話,則會在請求結束時悄悄地丟棄新值,而不會發出警告。 Session_OnEnd在請求結束時觸發,而不是在調用Abandon時觸發。

Session.Clear不會Session.Clear會話,它會清除所有值。 Session.Abandon實際上殺死了Session。

看起來這里解決了大部分內容: 在ASP.NET中,何時應該使用Session.Clear()而不是Session.Abandon()?

在這里稍晚但是想分享@stevemegson正確的證據,因為Session.RemoveAll內部調用Session.Clear

public void Clear()
        {
            this._container.Clear();
        }
        public void RemoveAll()
        {
            this.Clear();
        }

所以完全沒有區別

session.Abandon調用

public void Abandon()
        {
            this._container.Abandon();
        }

哪個基本上:)

public void Abandon()
{
    this._abandon = true;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM