AntiForgery例外:未提供所需的防伪令牌或无效

时间:2011-07-22 15:37:29

标签: asp.net-mvc antiforgerytoken

我有一个MVC2应用程序。我正在尝试实施AntiForgeryToken帮助以防止CSRF攻击。

我正在使用Steve Sanderson的博客http://blog.stevensanderson.com/2008/09/01/prevent-cross-site-request-forgery-csrf-using-aspnet-mvcs-antiforgerytoken-helper/

来实现这一点

当我在新的MVC2项目中实现它时,它可以工作。但是当我把它放在我的REAL应用程序中时,相同的代码,它总是抛出这个异常: 未提供所需的防伪令牌或无效。

这是我的控制器代码:

[ValidateAntiForgeryToken]
public ActionResult SubmitUpdate()
{

    // Something goes here
    return View();
}

视图中的代码:

<% using (Html.BeginForm("SubmitUpdate", "Test"))
   {%>
   <%= Html.AntiForgeryToken() %>
       <input type="submit" value="Submit" />
<% } %>

除了真正的应用程序使用ADFS进行身份验证之外,两个应用程序没有区别。我错过了什么?任何帮助将受到高度赞赏。谢谢!

2 个答案:

答案 0 :(得分:1)

您是否尝试过删除Cookie并重试?

答案 1 :(得分:0)

答案可能在于question关于KB补丁的答案以及确保机器密钥在服务器场/集群中的所有服务器之间是静态的等。