Проблема сеанса без файлов cookie MVC2 с использованием POST
По какой-то причине при включенном сеансе без файлов cookie в MVC2 идентификатор сеанса в строке запроса сбрасывается при каждой публикации формы. Есть ли специальный маршрут, который нужно настроить, чтобы это работало?
Есть ли еще какие-то ошибки, о которых мне нужно знать?
Благодарю.
3 ответа
Сессии без файлов cookie работают в MVC2, однако вы не можете использовать POST в качестве метода отправки формы. Он поддерживает только использование GET. Кроме того, все пути действий в формах необходимо обновить до следующего шаблона:
<form action="<%= Response.ApplyAppPathModifier("/SomeController/SomeAction") %>" method="get">
Это обеспечит автоматическую передачу идентификатора сеанса. Эта строка необходима в файле web.config для включения сеансов без файлов cookie:
<system.web>
<sessionState cookieless="true" regenerateExpiredSessionId="true"></sessionState>
</system.web>
С этими двумя изменениями все работало!
Если вы заинтересованы в том, чтобы обойти POST для работы с сеансом Cookieless и MCV2, я нашел следующую страницу. Включение POST в Cookieless ASP.NET Это не очень подходило для моего проекта, потому что я не могу использовать JavaScript.
Сессии без файлов cookie не поддерживаются в MVC 2 и вряд ли будут поддерживаться в будущих версиях MVC. См. http://forums.asp.net/p/1517391/3738312.aspx для получения дополнительной информации.
Если установлено это обновление, проверьте этот KB.
Настройки реестра Http.sys для IIS
Использовать сеанс без cookie и аутентификацию формы, автоматически вставлять этот ("/(S(...)F(...))/") сегмент пути URL. UrlSegmentMaxLength по умолчанию - 260, но MS10-070 установил среду над этим. Я думаю, что это результат для отступления оракула.
Надеюсь, это поможет!