Пользовательский поставщик состояния сеанса .NET: не сохраняется на разных страницах ... иногда - PullRequest
0 голосов
/ 24 июня 2011

В моем приложении реализован пользовательский поставщик состояний сеансов для Oracle. Кажется, он работает гладко (без ошибок!), Но у меня возникают проблемы с получением некоторых переменных Session, когда я перенаправляю на другую страницу. Но это не происходит постоянно.

Когда начинается сессия, я загружаю объект пользователя в сессию. Он остается там, потому что, когда пользователь попадает на начальную страницу (и проходит проверку подлинности), приложение все равно распознает его. У него нет проблем с извлечением объекта User из сеанса.

Но если я передам значение в Session на одной из моих страниц в приложении, а затем перенаправлю на другую страницу, чтобы использовать эту переменную Session, новая страница получит значение NULL из переменной Session с тем же именем. Используя окно Visual Studio Watch, я вижу изменение его значения со значения «100» (или чего-либо еще) на ноль. Я не понимаю

Кажется, что поставщик сеанса работает правильно, потому что, как я уже сказал, я могу сохранить некоторые переменные. Кто-то знает, в чем причина того, что Session может «потерять» значение? Спасибо.

1 Ответ

0 голосов
/ 24 июня 2011

Если вы делаете response.redirect на странице, это может привести к прерыванию потока перед записью сеанса обратно в базу данных.

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