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

StackOverflow https://stackoverflow.com/questions/414488

  •  03-07-2019
  •  | 
  •  

Вопрос

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

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

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

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top