Очистка сессии ASP.Net между постбэками - PullRequest
1 голос
/ 02 сентября 2011

Это выскочило сегодня и очень странно. Мы не можем понять, что изменилось, но это работало раньше.

По сути, у нас есть класс с именем "ProjectSession", который содержит статические свойства и методы для работы с сеансом.
Основным является ProjectSession.ProjectId, который является ничем иным, как оберткой для HttpContext.Current.Session["ProjectID"]. Когда создается новый проект, мы устанавливаем идентификатор в этом свойстве. Если у пользователя уже есть проект, мы устанавливаем значение в Page Load if (!IsPostBack). Довольно просто

Однако в середине сегодняшнего дня мы внезапно начали видеть, как это значение исчезает из сеанса. Фактически весь объект сеанса очищается. На первой странице сайта мы устанавливаем значение, если у пользователя есть проект. Затем при первом же нажатии кнопки мы проверяем значение, и оно становится нулевым.

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

Если у кого-нибудь есть идеи, что может вызвать это, пожалуйста, дайте мне знать.

p.s. -> Мы проверили двойные, тройные и четырехместные. Есть 0 строк кода, которые говорят ProjectSession = и ровно 2 строки кода, которые говорят ProjectSession.ProjectID =, и это те 2, которые я упомянул в этом вопросе.

Ответы [ 2 ]

2 голосов
/ 03 сентября 2011

Ответ заключается в том, что кто-то добавил эту строку в наш файл Web.Config: <httpCookies domain="THEPUBLICSITE" />

Поэтому, когда мы работали локально, сервер подумал, что мы пытаемся выполнить межсайтовый скриптинг (XSS).

2 голосов
/ 02 сентября 2011

Cassinni будет постоянно сбрасывать «пул приложений» (он не совпадает с IIS). Вы должны проводить тестирование в среде, максимально приближенной к производственной. Как минимум, я предлагаю вам использовать IIS, если это критическая ошибка, которую вы пытаетесь устранить и воспроизвести.

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