代码之家  ›  专栏  ›  技术社区  ›  a432511

使用POST的MVC2无库克会话问题

  •  3
  • a432511  · 技术社区  · 14 年前

    由于某些原因,在MVC2中启用了无cookieless会话,查询字符串中的会话id将随发生的每个表单post重置。是否需要设置一个特殊的路径才能正常工作?

    谢谢。

    3 回复  |  直到 14 年前
        1
  •  4
  •   a432511    14 年前

    无Cookieless会话在MVC2中确实有效,但是不能使用POST作为表单提交的方法。它只支持GET的使用。此外,表单上的所有操作路径都需要更新为以下模式:

    <form action="<%= Response.ApplyAppPathModifier("/SomeController/SomeAction") %>" method="get">
    

    这将确保会话id自动传递。这是web.config文件中启用无库克会话所需的行:

    <system.web>
        <sessionState cookieless="true" regenerateExpiredSessionId="true"></sessionState>
    </system.web>
    

    有了这两个变化,一切都正常了!

    如果你对让POST与Cookieless session和MCV2一起工作的解决方案感兴趣,我找到了下面的页面。 Enabling POST in Cookieless ASP.NET 这不太适合我的项目,因为我不能使用JavaScript。

        2
  •  1
  •   Levi    14 年前

    MVC 2不支持无Cookieless会话,而且在未来的MVC版本中也不太可能支持无Cookieless会话。见 http://forums.asp.net/p/1517391/3738312.aspx 更多信息。

        3
  •  0
  •   takepara    14 年前

    Microsoft Security Bulletin MS10-070 - Important: Vulnerability in ASP.NET Could Allow Information Disclosure (2418042)

    如果安装了此更新,请检查此知识库。

    Http.sys registry settings for IIS

    使用无cookieless会话和表单身份验证自动插入此(“/(S(…)F(…))/”)Url路径段。 默认的UrlSegmentMaxLength是260,但是MS10-070安装了这个环境。我认为这是填充oracle的结果。

    希望能帮上忙!