asp.net-mvc - AntiForgeryToken是否需要在表单标签内

标签 asp.net-mvc antiforgerytoken

我看到的所有示例都在<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/

相关文章:

asp.net-mvc - 标记 'h1' 未关闭

asp.net - IIS为ASP.NET MVC3文件(.cshtml)返回404

c# - ASP.Net MVC 忽略过滤器顺序

c# - .NET Core 3.1、Vue、Axios 和 [ValidateAntiForgeryToken]

c# - 如何使用 Visual Studio 开发跨平台移动应用程序

c# - POST 表单数组没有成功

c# - 如何在 ASP.NET Core 的 HTTP GET 请求中使用 ValidateAntiForgeryToken?

asp.net-mvc - 如何禁用 ASP.NET MVC Core 2 中的防伪 token 检查

asp.net-mvc - MVC antiforgerytoken 部分 View

winforms - 在 Winform 和 WebAPI 中处理 AntiForgery Token