我看到的所有示例都看到了<form>
标记内的AntiForgeryToken:
@Using Html.BeginForm("DoThis", "FromHere", FormMethod.Post, New With {.id = "MyId"})
@Html.AntiForgeryToken()
End Using
这需要吗?我正在使用ajax / jQuery调用回到服务器的帖子。我使用此处提供的示例(preFilter),以便我可以检索AntiForgeryToken。我只是在表单标签内没有我的AntyForgeryToken。我只是将它放在我的根_Layout页面上并称之为好。为什么我还需要做其他事情?我无法想到为什么我要......
答案 0 :(得分:6)
在示例中,他们在表单标记中具有防伪,因此当通过提交按钮单击发布表单时,它将自动发布所有其他表单变量。如果您通过ajax手动发布数据,则可以在任何地方生成防伪令牌,但您需要获取该值并将其与您发送到服务器的任何其他数据一起发布。
确保将防伪标记的属性命名为与HTML帮助程序方法相同(“__ RequestVerificationToken”)。