asp.net: данные, помещенные в сеанс, доступны во время работы в Internet Explorer, но не в Opera - PullRequest
1 голос
/ 05 января 2009

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

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

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

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

Ответы [ 3 ]

0 голосов
/ 05 января 2009

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

0 голосов
/ 06 января 2009

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

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

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

0 голосов
/ 05 января 2009

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

...