asp.net - сессия - несколько вкладок браузера - различные сессии?

Я хотел бы поддержать состояние сеанса на вкладку браузера.

Действительно ли это легко (или даже возможно) сделать в ASP.NET?

Пример: пользователь поражает Ctrl-T в Firefox 5 раз и посещает сайт на каждой вкладке. Я хотел бы, чтобы каждая вкладка имела свое собственное состояние сеанса на сервере

28
задан Brian Webster 29 September 2012 в 12:55
поделиться

2 ответа

Чтобы облегчить состояние сеанса с несколькими вкладками для одного пользователя, не загромождая URL, выполните следующие действия.

Включите в функцию загрузки формы:

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

Когда вы сохраняете что-либо в своем состоянии сеанса, включите идентификатор страницы:

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

Примечания :

  • Как и в случае с идентификаторами сеанса в целом, вы не можете доверять этому вредоносному зрители не будут менять SessionID / PageID. Это подходящее решение только для среды, где всем пользователям можно доверять. К счастью, ViewState предлагает больше защиты, чем использование скрытого поля ввода.
  • У вас не будет доступа к PageID, пока ViewState не будет восстановлен после PostBack. Следовательно, у вас не будет доступа к PageID в обработчике page_init ().
21
ответ дан 28 November 2019 в 03:37
поделиться
<configuration>
  <system.web>
    <sessionState cookieless="true"
      regenerateExpiredSessionId="true" />
  </system.web>
</configuration>

http://msdn.microsoft.com/en-us/library/ms178581.aspx

в этом случае каждая вкладка получит уникальный идентификатор, и это будет выглядеть так, как будто это другой посетитель .

15
ответ дан 28 November 2019 в 03:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: