Как я могу сделать HTTPHandler в файле ashx РАЗМЕСТИТЬ SessionCookie, управляемый ASP.NET? Кажется, что вызов ashx-файла не помещает cookie, поэтому сеанс не может поддерживаться.
Предыстория: я собираюсь написать оболочку веб-службы на основе HTTP. Разные клиенты вызывают URL-адрес, который я им предоставляю с заданными параметрами. Я проверяю учетные данные, вызываю стороннюю веб-службу и возвращаю измененный результат клиенту. Сторонний поставщик веб-услуг требует по контракту идентификатор сеанса для каждого звонящего клиента.
Решение: HTTPHandler кажется лучшим выбором. Итак, я создал проект веб-сайта. К сожалению, прямой вызов ashx-File, похоже, не добавляет файл cookie сеанса к ответу, поэтому новый идентификатор сеанса создается для каждого вызова от одного и того же клиента.
Я сделал следующее по теме:
- Реализованы интерфейсы разметки IRequiresSessionState и / или IReadOnlySessionState.
- Добавлен
<sessionState mode="InProc" cookieless="false" timeout="20" />
в web.config - Сохраните что-нибудь в состоянии сеанса в файле Global.asax в Session_Start-Method HttpContext.Current.Session ("init") = 0
Различные попытки, которые работают, но их следует избегать:
- Перед вызовом файла ashx вызов файла Default.aspx помещает cookie сеанса, поэтому сеанс сохраняется.
- Реализуйте «собственный» сеанс с базой данных и отметкой времени.
Версия: IIS 6.0