我看到的所有示例都在<form>标记中包含AntiForgeryToken:

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

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

最佳答案

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

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

关于asp.net-mvc - AntiForgeryToken是否需要在表单标签内,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23703267/

10-11 17:28