c# - 反 xsrf token 验证失败

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

我为一个非常简单的提交表单创建了一个新的 asp.net web 表单(带母版页)应用程序。我使用 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:             }

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

最佳答案

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

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

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

关于c# - 反 xsrf token 验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19435694/

相关文章:

c# - 如何在更改存储库路径后重置 HintPath

c# - 将 XML 加载到内存流中

c# - 为什么我需要等待已经等待的调用(.NET Core 2.2)

visual-studio-2012 - 从 TFS 团队项目中删除特定类型的所有文件

C++ 可拖动无边框窗口问题

c# - asp.net 从 Jquery UI 对话框中获取值返回到第一种形式

c# - VS2017 - C#7 语言功能在 MVC View 中不起作用

c# - 在 ServiceStack 中是否可以模拟 Request.OriginalRequest 对象进行单元测试?

.net - 什么时候应该使用 <%# ... %> 和 <%= ... %>?

c# - 我的数据源不支持删除?我怎样才能激活它?