由于某些原因在MVC2中启用了cookieless会话,查询字符串中的会话ID将随每个发生的表单发布重置。是否有需要设置的特殊路线才能使用?
我还需要注意其他问题吗?
感谢。
答案 0 :(得分:4)
无Cookie会话在MVC2中有效,但是,您不能使用POST作为表单提交的方法。它只支持使用GET。此外,表单上的所有操作路径都需要更新为以下模式:
<form action="<%= Response.ApplyAppPathModifier("/SomeController/SomeAction") %>" method="get">
这将确保会话ID自动传递。这是web.config文件中启用无Cookie会话所需的行:
<system.web>
<sessionState cookieless="true" regenerateExpiredSessionId="true"></sessionState>
</system.web>
通过以上两项更改,一切正常!
如果您对使用POST无法使用Cookieless会话和MCV2的解决方法感兴趣,我找到了以下页面。 Enabling POST in Cookieless ASP.NET这不适合我的项目,因为我无法使用JavaScript。
答案 1 :(得分:1)
MVC 2不支持无Cookie会话,MVC的未来版本不太可能支持。有关详细信息,请参阅http://forums.asp.net/p/1517391/3738312.aspx。
答案 2 :(得分:0)
如果安装了此更新,请检查此KB。
Http.sys registry settings for IIS
使用无Cookie会话&amp;表单身份验证自动插入此(“/(S(...)F(...))/”)Url路径段。 默认UrlSegmentMaxLength是260,但MS10-070安装了环境。我认为这是填充oracle的结果。
希望这有帮助!