我们收到“未提供所需的防伪令牌或该令牌无效”。错误,在进一步的调查中,我设法以最简单的形式重现了这个问题——我要么做错了,要么这是防伪令牌系统的限制。
无论哪种方式,我都会很感激一些建议!
空的 MVC 2 项目:一个视图页面,一个控制器
看法:
<%--Sign in form:--%>
<% using(Html.BeginForm("SignIn", "Home", FormMethod.Post)) {%>
<%= Html.AntiForgeryToken()%>
<input type="submit" value="Sign in" />
<%}%>
控制器:
public ActionResult Index()
{
ViewData["status"] = "Index";
return View();
}
[ValidateAntiForgeryToken]
public ActionResult SignIn()
{
ViewData["status"] = "Signed In!";
FormsAuthentication.SetAuthCookie("username", false);
return View("Index");
}
[编辑:简化代码示例]
为了重新创建例外,请打开两个未登录的选项卡 - 在第一个选项卡上登录,然后在第二个选项卡上登录。
当我猜测正确的行为是重定向到登录页面时,第二个选项卡将始终引发防伪异常(共享原始登录选项卡的会话/身份验证)
任何意见,将不胜感激!
干杯,戴夫