asp.net: данные, помещенные в сеанс, доступны при работе в Internet Explorer, но не в Opera

это действительно странно - у меня есть веб-сайт, который отлично работает в maxthon (браузер на основе Internet Explorer). я запустил его в опере и обнаружил, что данные, помещенные в словарь сеанса на одном сайте, недоступны на другом... я имею в виду, что у меня есть Welcome.aspx, где при нажатии далее выполняется следующий код:

Session["sessionData"] = sessionData;
Response.Redirect("~/Models.aspx");  

во время отладки я вижу, что сессия в models.aspx пуста при выполнении в опере, но при выполнении в maxthon все в порядке. кто-нибудь понял, что может быть не так? потому что я ничего не понимаю... это какие-то настройки оперы или что-то в коде?

Изменить: я проверил Session.IsNewSession, и при выполнении в maxthon для isnewsession установлено значение false, но в опере это правда. похоже в опере при переходе на новую страницу как-то создается новая сессия...


person agnieszka    schedule 05.01.2009    source источник


Ответы (3)


Если вы записываете сеанс при первом попадании, вам следует сделать

Response.Redirect("nextpage.asp", false);

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

person Richard L    schedule 05.01.2009

Сеанс ASP.NET хранится с помощью ключа, который сохраняется в виде файла cookie в браузере. Проверьте Opera, чтобы узнать, принимает ли она файлы cookie — это необходимо для правильной работы сеанса ASP.NET.

person Andrew Hare    schedule 05.01.2009
comment
Я бы проверил оперу и искал фактический файл cookie, чтобы убедиться, что он был принят - вы должны увидеть файл cookie сеанса ASP.NET из своего домена. - person Andrew Hare; 06.01.2009

Возможно, у вас отключены файлы cookie в Opera. Сессия работает (если в web.config не указано как без файлов cookie), сохраняя идентификатор в файле cookie. Если браузер не разрешает доступ, сервер не сможет найти данные

person Manu    schedule 05.01.2009