Почему идентификатор сессии не одинаков на всех веб-страницах?
У меня есть одно огромное сомнение
Почему идентификатор сессии не одинаков на всех веб-страницах?
КОД:
В 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