【发布时间】: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: }
我们可以做些什么来避免这种情况?
【问题讨论】:
-
这不是特别安全。您应该使用 ASP.Net 的内置 CSRF 保护。
-
是的,我不是说,删除这个,但是如何防止这个错误出现
标签: c# asp.net visual-studio-2012 .net-4.5