【问题标题】:AntiForgery Exception: A required anti-forgery token was not supplied or was invalidAntiForgery 例外:所需的防伪令牌未提供或无效
【发布时间】:2012-04-18 13:51:56
【问题描述】:

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

我正在使用 Steve Sanderson 的博客来实现这一点: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 进行身份验证。我错过了什么?任何帮助将不胜感激。谢谢!

【问题讨论】:

  • 生成的 HTML 是什么?
  • 你有办法解决这个问题吗?我突然在一台服务器上遇到了同样的问题。

标签: asp.net-mvc antiforgerytoken


【解决方案1】:

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

【讨论】:

  • 是的,我有。删除缓存、删除所有cookies、重启IIS、重启我的机器等
  • 这是它正在生成的 html。
    This is an index page

    Name

【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2012-01-25
    • 1970-01-01
    • 2012-06-09
    • 2013-01-27
    • 2014-03-07
    • 2013-05-25
    • 2011-02-16
    • 2012-02-19
    相关资源
    最近更新 更多