我看到很多人出于不同的原因遇到了这个问题,直到现在我找不到任何解决方案但是删除了AntiForgeryToken。
我的应用程序结构如下:
登录表单(允许cnnonymous,使用单个AntiForgeryToken)
数据操作页面(仅限经过身份验证的用户,多个AntiForgeryTokens,每个模态窗口一个及其<form>
标签)
如果我打开应用程序并使用用户A登录,我可以正确地使用数据操作页面插入信息。但是,如果我只是转到此数据操作页面,退出当前用户(A),使用用户B登录并再次转到数据操作页面,我收到错误“提供的防伪令牌意味着对于用户'PREVIOUS',但当我点击提交按钮时,当前用户是'CURRENT'。
我只使用表单按钮提交,没有AJAX。此应用程序在ASP.Net MVC 4上运行,使用FormsAuthentication并使用以下代码注销用户:
HttpContext.Session.Clear();
FormsAuthentication.SignOut();
我该怎么做才能修复它?已经过了6个小时,很多东西都试过了,但都没有成功。
PS:我之前在StackOverflow上搜索过: