Проблема между Flash и универсальным обработчиком (ASP.Net)

Сейчас я использую FancyUpload (flash upload), чтобы пользователь мог загружать файлы в небольшой проект. Я использую универсальный обработчик для обработки на сервере, когда пользователь загружает свой файл, но получаю сообщение об ошибке: Не удается получить сеанс в универсальном обработчике (.ashx) при использовании Firefox или Chrome и т. д., кроме IE

Я прочитал так много решений и, наконец, обнаружил, что у Flash есть ошибка, которая не может отправлять файлы cookie в Firefox или Chrome, кроме IE, поэтому я просто хочу, чтобы все, что вы, парень, могли помочь, дать мне лучший способ передать эту вещь

Может быть, я могу проверить сеанс во Flash перед тем, как он начнет отправлять файл на сервер, или проверить сеанс в Generic Handler перед его сохранением, просто скажите мне, как это сделать, plzzzz

Заранее спасибо и извините 4 мой E


person Hieu Nguyen Trung    schedule 05.11.2010    source источник


Ответы (2)


Стандартный способ сделать это — сохранить любые данные, которые вам нужны из сеанса, в приложении с каким-то уникальным ключом. Затем передайте уникальный ключ Flash, который может передать его обратно на сервер в качестве параметра URL. Затем, даже если вызов не является частью сеанса, вы можете использовать параметр url для доступа к необходимым кэшированным данным.

person Samuel Neff    schedule 05.11.2010
comment
Спасибо за ответ, во-первых, я согласен с вами хранить данные в приложении вместо сеанса, но как я могу узнать, когда пользователь завершает сеанс (выход из системы или что-то в этом роде...)? - person Hieu Nguyen Trung; 05.11.2010
comment
@Chrno Love, в этом случае, как только загрузка будет завершена, вы можете удалить данные из кеша приложения. - person Samuel Neff; 05.11.2010
comment
Не совсем хорошо, есть ли способ получить объект сеанса из идентификатора сеанса? может быть, отправка идентификатора сеанса через флэш-память на сервер, а затем декодирование - это хорошая идея? как ты думаешь, Сэм? - person Hieu Nguyen Trung; 05.11.2010
comment
@Chrno Love, можно использовать сеансы без файлов cookie, которые передают идентификатор сеанса в URL-адресе, но мне больше нравится мой способ. Я не уверен, можете ли вы использовать сеансы без файлов cookie только для некоторых вызовов или их должен использовать весь сайт. msdn.microsoft.com/en-us/library/ - person Samuel Neff; 05.11.2010
comment
Можете ли вы написать мне код, как получить объект сеанса из идентификатора сеанса, пожалуйста? - person Hieu Nguyen Trung; 05.11.2010

У меня была такая же проблема с SWFUpload. Решение состоит в том, чтобы передать sessionID объекту flash (и направить его обработчику загрузки с помощью сообщения или строки запроса). Чтобы восстановить сеанс, вы можете создать «поддельный» файл cookie сеанса в событии Application_BeginRequest (в global.asax).

person semao    schedule 31.01.2011