Почему идентификатор сессии не одинаков на всех веб-страницах?

У меня есть одно огромное сомнение

Почему идентификатор сессии не одинаков на всех веб-страницах?

КОД:

В webpage1.aspx.cs

String sess1 = Session.SessionID.ToString();

В webpage2.aspx.cs

String sess2 = Session.SessionID.ToString();

Когда я загружаю свой webpage1.aspx, он показывает один уникальный идентификатор сеанса, и переходит к webpage2.aspx, он показывает другой новый уникальный идентификатор сеанса.

Оба идентификатора сеанса (sess1, sess2) должны быть одинаковыми, он генерирует разные идентификаторы сеанса.

Могу я почему?

а также как сохранить этот идентификатор сессии на всех страницах aspx

1 ответ

Причина:

При использовании состояния сеанса на основе файлов cookie ASP.NET не выделяет хранилище для данных сеанса до тех пор, пока не будет использован объект Session. В результате новый идентификатор сеанса генерируется для каждого запроса страницы, пока не будет получен доступ к объекту сеанса. Если вашему приложению требуется статический идентификатор сеанса для всего сеанса, вы можете либо реализовать метод Session_Start в файле приложения Global.asax и сохранить данные в объекте Session для исправления идентификатора сеанса, либо использовать код в другой части вашего приложение для явного хранения данных в объекте Session.

Вы должны использовать как это Session["Id"] = 0; как это.

Если вы не используете его в коде C#, он будет генерироваться новым при каждом запросе.

См. SessionId

Другие вопросы по тегам