【问题标题】:Validation of viewstate MAC failed in SafariSafari 中视图状态 MAC 的验证失败
【发布时间】:2010-10-29 14:14:11
【问题描述】:

我有一个使用表单身份验证的网络应用程序。当我执行以下步骤时

  1. 让登录 cookie 过期
  2. 点击需要登录用户的链接
  3. 用户被重定向到登录页面
  4. 点击浏览器后退按钮
  5. 用户再次被重定向到登录页面
  6. 使用有效的用户名/密码登录

我得到了这个异常 视图状态 MAC 验证失败。如果此应用程序由 Web Farm 或集群托管,请确保配置指定相同的 validationKey 和验证算法。 AutoGenerate 不能在集群中使用。

这种情况只出现在 safari(windows 和 mac)中。 safari 与其他浏览器的根本区别在于,当我们在第 4 步中单击返回按钮时,safari 再次显示登录页面,而其他浏览器显示用户正在处理的上一个页面。

请在这方面提供帮助

【问题讨论】:

    标签: asp.net safari viewstate


    【解决方案1】:

    从 Safari v 5.1.4 开始,我们遇到了与视图状态类似的问题。

    我们的问题是因为我们在 window.onload 事件期间提交了一个表单,然后重定向到一个新页面。提交第二页时,我们会得到您报告的 peroration。

    当我们提交第二个页面时,我们确定 safari 5.1.4 和 5.1.5 正在发送前一页的视图状态,导致验证错误

    查看我在此线程中的回复ASP.NET Viewstate with Safari 5.x

    【讨论】:

      【解决方案2】:

      虽然我在日志中看到了让我相信我面临与您相同的问题的错误,但我还无法在示例应用程序中重现该错误。我的猜测是超时页面的视图状态信息正在提交到登录页面,这是无效的。为了纠正这个问题,可以在登录页面生命周期的早期(可能是 Page_Init)放置一些东西,以识别何时重定向到登录页面(可能通过引用)并绕过视图状态验证。

      【讨论】:

        猜你喜欢
        • 2010-09-24
        • 2011-12-18
        相关资源
        最近更新 更多