【问题标题】:Does the AntiForgeryToken need to be inside a form tagAntiForgeryToken 是否需要在表单标签内
【发布时间】:2014-05-17 03:38:58
【问题描述】:

我看到的所有示例都将 AntiForgeryToken 放在 <form> 标签内:

@Using Html.BeginForm("DoThis", "FromHere", FormMethod.Post, New With {.id = "MyId"})
    @Html.AntiForgeryToken()
End Using

这是必需的吗?我正在使用 ajax/jQuery 调用将帖子发回服务器。我正在使用此处提供的示例 (preFilter),以便检索 AntiForgeryToken。我只是在表单标签中没有我的 AntyForgeryToken。我只是将它放在我的根 _Layout 页面上并称之为好。为什么我需要做其他事情?我想不出为什么我必须...

【问题讨论】:

标签: asp.net-mvc antiforgerytoken


【解决方案1】:

在示例中,它们在表单标记中具有防伪功能,因此当通过提交按钮发布表单时,单击它会自动与所有其他表单变量一起发布。如果您通过 ajax 手动发布数据,您可以在任何地方生成防伪令牌,但您需要获取该值并将其与您发送到服务器的任何其他数据一起发布。

确保将防伪令牌的属性命名为与 HTML 帮助器方法的名称相同(“__RequestVerificationToken”)。

【讨论】:

  • 好吧,我没有命名防伪令牌,因为我让 html 助手处理它。这就是我的想法,我只是想要一个明确的答案,谢谢@MDiesel!
猜你喜欢
  • 2011-02-11
  • 2011-04-07
  • 2011-01-11
  • 2015-12-24
  • 2016-06-14
  • 2017-03-31
  • 1970-01-01
  • 2013-12-27
  • 2012-02-02
相关资源
最近更新 更多