提供的防伪令牌适用于用户“PREVIOUS”,但当前用户为“CURRENT”

时间:2016-06-24 19:47:46

标签: asp.net-mvc asp.net-mvc-4 antiforgerytoken

我看到很多人出于不同的原因遇到了这个问题,直到现在我找不到任何解决方案但是删除了AntiForgeryToken。

我的应用程序结构如下:

  • 登录表单(允许cnnonymous,使用单个AntiForgeryToken)

  • 数据操作页面(仅限经过身份验证的用户,多个AntiForgeryTokens,每个模态窗口一个及其<form>标签)

如果我打开应用程序并使用用户A登录,我可以正确地使用数据操作页面插入信息。但是,如果我只是转到此数据操作页面,退出当前用户(A),使用用户B登录并再次转到数据操作页面,我收到错误“提供的防伪令牌意味着对于用户'PREVIOUS',但当我点击提交按钮时,当前用户是'CURRENT'。

我只使用表单按钮提交,没有AJAX。此应用程序在ASP.Net MVC 4上运行,使用FormsAuthentication并使用以下代码注销用户:

HttpContext.Session.Clear();
FormsAuthentication.SignOut();

我该怎么做才能修复它?已经过了6个小时,很多东西都试过了,但都没有成功。

PS:我之前在StackOverflow上搜索过:

  • 不,我没有使用Ajax登录或插入数据
  • 我在任何表单上都没有多个AntiForgeryToken,但我的页面有多个表单(每个表单都有自己的AntiForgeryToken)

0 个答案:

没有答案