4

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

我正在使用史蒂夫桑德森的博客来实现这一点:http: //blog.stevensanderson.com/2008/09/01/prevent-cross-site-request-forgery-csrf-using-aspnet-mvcs-antiforgerytoken-helper/

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

这是我的控制器代码:

[ValidateAntiForgeryToken]
public ActionResult SubmitUpdate()
{

    // Something goes here
    return View();
}

查看代码:

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

除了实际应用程序使用 ADFS 进行身份验证外,这两个应用程序没有区别。我错过了什么?任何帮助将不胜感激。谢谢!

4

2 回答 2

1

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

于 2011-07-22T15:45:25.453 回答
0

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

于 2012-04-18T05:51:56.080 回答