【问题标题】:validation of anti-xsrf token failed反 xsrf 令牌的验证失败
【发布时间】:2017-05-12 22:50:37
【问题描述】:

我为一个非常简单的提交表单创建了一个新的 asp.net 网络表单(带有母版页)应用程序。我使用 Visual Studio 2012 创建 Web 项目,并在 site.master.cs 上添加了防止跨站点脚本伪造的代码。

然而,在测试中,如果用户签名并处于非活动状态几分钟,然后单击注销按钮,我们会收到此错误(在 site.master.cs 上)

Validation of Anti-XSRF token failed.

       Exception Details: System.InvalidOperationException: Validation of Anti-XSRF token failed.

Source Error: 
Line 61:                     || (string)ViewState[AntiXsrfUserNameKey] !=    

  (Context.User.Identity.Name ?? String.Empty))

 Line 62:                 {

 Line 63:                     throw new InvalidOperationException("Validation of Anti-XSRF token failed.");


   Line 64:                 }

 Line 65:             }

我们可以做些什么来避免这种情况?

【问题讨论】:

标签: c# asp.net visual-studio-2012 .net-4.5


【解决方案1】:

这完全取决于您。随心所欲地处理错误.. 在您的情况下,您可能会重新启动 Web 服务器并且您的视图状态已死或在不知情的情况下这样做。

您在使用 Owin 吗?如果您使用的是 Owin,则会有一个错误会弄乱 Session 和 Viewstate。在对用户进行身份验证之前,请创建一个 Session 变量(任何东西),例如 Session["Blah"] = test。

只需添加代码来处理错误(将用户重定向到另一个页面)。

【讨论】:

  • 我知道这很旧,但您能否详细说明为什么这是一个错误,它在哪里,如何更正它(设置会话变量根本不起作用 - 在母版页或任何网络表格)?这个问题是一场噩梦,我们只能通过禁用该功能来解决它​​(对于一个真实的网站来说太麻烦了)。
猜你喜欢
  • 1970-01-01
  • 2020-10-28
  • 2013-06-22
  • 1970-01-01
  • 1970-01-01
  • 2022-10-19
  • 2018-07-23
  • 2014-01-23
  • 1970-01-01
相关资源
最近更新 更多