2016-11-07 4 views
1

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

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

КОД:

В webpage1.aspx.cs

String sess1 = Session.SessionID.ToString(); 

В webpage2.aspx.cs

String sess2 = Session.SessionID.ToString(); 

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

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

May i why ??

, а также, как утверждают, что SESSIONID во всех ASPX страниц

ответ

1

Причина:

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

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

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

См. SessionId