ASP.NET: Session.SessionID изменяется между запросами - PullRequest
129 голосов
/ 20 мая 2010

Почему свойство SessionID объекта Session на странице ASP.NET изменяется между запросами?

У меня есть такая страница:

...
<div>
    SessionID: <%= SessionID %>
</div>
...

И вывод постоянно меняется каждый раз, когда я нажимаю F5, независимо от браузера.

Ответы [ 13 ]

0 голосов
/ 01 апреля 2016

Я столкнулся с этой проблемой по-другому. Контроллеры с этим атрибутом [SessionState(SessionStateBehavior.ReadOnly)] читали из другого сеанса, хотя я установил значение в исходном сеансе при запуске приложения. Я добавлял значение сеанса через _layout.cshtml (может быть, не самая лучшая идея?)

Ясно, что проблема была только в ReadOnly, потому что когда я удалял атрибут, исходный сеанс (и SessionId) оставался в такте. Использование решения Клаудио / Microsoft исправило это.

0 голосов
/ 22 мая 2014

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

В моем случае новый сеанс, создаваемый для каждого запроса, приводил к бесконечному циклу перенаправления. Действие перенаправления происходит в OnActionExecuting событие.

Также я очистил все заголовки http (также в OnActionExecuting , используя Response.ClearHeaders метод), чтобы предотвратить кэширование сайтов на стороне клиента. Но этот метод очищает все заголовки, включая информацию о сеансе пользователя, и, следовательно, все данные во временном хранилище (которое я использовал позже в программе). Так что даже установка нового сеанса в событии Session_Start не помогла.

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

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 20 мая 2010

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

FireFox webDeveloperToolbar полезен в такие моменты, как вы можете видеть файлы cookie, установленные для вашего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...