Asp.net

asp.net - 會話 - 多個瀏覽器選項卡 - 不同的會話?

  • May 15, 2010

我想為每個瀏覽器選項卡維護一個會話狀態。

在 ASP.NET 中這很容易(甚至可能)嗎?

範例:使用者在 Firefox 中按 Ctrl-T 5 次並在每個選項卡中訪問該站點。我希望每個選項卡在伺服器上都有自己的會話狀態

為了方便一個使用者的多選項卡會話狀態而不使 URL 混亂,請執行以下操作。

在您的表單載入功能中,包括:

If Not IsPostback Then
 'Generate a new PageiD'
 ViewState("_PageID") = (New Random()).Next().ToString()
End If

當您將某些內容保存到會話狀態時,請包含 PageID:

Session(ViewState("_PageID").ToString() & "CheckBoxes") = D

備註

  • 與一般的會話 ID 一樣,您不能相信惡意查看者不會更改 SessionID / PageID。對於所有使用者都可以信任的環境,這只是一個有效的解決方案。幸運的是,ViewState 確實提供了比使用隱藏輸入欄位更多的保護。
  • 在 PostBack 恢復 ViewState 之前,您將無法訪問 PageID。因此,您將無法訪問 page_init() 處理程序中的 PageID。

引用自:https://stackoverflow.com/questions/2840615