Состояние сеанса ASP.Net недоступно на другой веб-странице - PullRequest
1 голос
/ 15 января 2012

Я разрабатываю одностраничное веб-приложение со всеми действиями, происходящими в default.aspx.Я сохраняю идентификатор пользователя в сеансе после его входа в систему.Я использую SWFUpload в default.aspx для загрузки файлов в upload.aspx.Когда upload.aspx получает файл, он проверяет HttpContext.Current.Session на идентификатор пользователя.Раньше это работало, но с недавних пор HttpContext.Current.Session не имеет никаких значений, касающихся моей сессии.Я, должно быть, что-то изменил, но я понятия не имею, что.

Странно, но по-прежнему работает с IE, но не с Firefox или Chrome.Я также читал кое-что о Flash в Firefox, по ошибке загружая cookie-файл сеанса IE (я перефразирую).

Как получить данные сеанса со страницы загрузки (Firefox и Chrome)?

1 Ответ

3 голосов
/ 15 января 2012

Это известная проблема с Flash и файлами cookie в браузерах, отличных от IE.Вот сообщение на swfupload.org , в котором обсуждается обходной путь, и «просто код» в snipplr .По сути, Flash не отправляет ваши куки (или отправляет куки IE) в Firefox, Chrome и т. Д., Поэтому ваш SessionID не отправляется с вашим запросом upload.aspx в этих браузерах.В IE это будет работать, хотя.

Обходное решение выше - отправить SessionID и билет проверки подлинности в сообщении или URL-адресе, а затем в Global.asax перехватить запрос и воссоздать правильные файлы cookie, прежде чем ASP.NET выполнит их поиск для получения аутентификации.или информация о сеансе.

...