Asp.net core mvc Html.AntiForgeryToken()仍然需要吗?

Asp.net core mvc Html.AntiForgeryToken()仍然需要吗?,asp.net-core-mvc,antiforgerytoken,Asp.net Core Mvc,Antiforgerytoken,ASP.NET.NET4.6 vNext中是否仍然需要@Html.AntiForgeryToken() 装饰的形式已改为 由此 @使用(Html.BeginForm(“登录”), “帐户”, 新建{ReturnUrl=ViewBag.ReturnUrl}, FormMethod.Post, 新的{@class=,role=“form”}) 不再包括这个 @Html.AntiForgeryToken() 控制器操作仍按预期标记有ValidateAntiForgeryToken属性,但它的确

ASP.NET.NET4.6 vNext中是否仍然需要
@Html.AntiForgeryToken()

装饰的形式已改为


由此

@使用(Html.BeginForm(“登录”),
“帐户”,
新建{ReturnUrl=ViewBag.ReturnUrl},
FormMethod.Post,
新的{@class=,role=“form”})
不再包括这个

@Html.AntiForgeryToken()
控制器操作仍按预期标记有
ValidateAntiForgeryToken
属性,但它的确切来源是什么?自动的

[HttpPost]
[异名]
[ValidateAntiForgeryToken]
公共异步任务登录(LoginViewModel模型,字符串returnUrl=null)

表单标记帮助器将自动添加防伪令牌。(除非您将其用作标准的html表单元素,否则请手动添加
action
属性)。检查的源代码,您将在
过程的末尾看到以下内容

if (Antiforgery ?? antiforgeryDefault)
{
    var antiforgeryTag = Generator.GenerateAntiforgery(ViewContext);
    if (antiforgeryTag != null)
    {
        output.PostContent.AppendHtml(antiforgeryTag);
    }
}
如果检查登录页面的html,您将在表单中看到以下隐藏输入:

<input name="__RequestVerificationToken" type="hidden" value="CfDJ8BIeHClDdT9...">

从MVC 6、Asp.net 5 RC1开始,标记帮助程序是“Asp antiforgery”而不是“Asp antiforgery”,不确定它是否已经是这样或更改过的
<form asp-controller="Account" asp-action="Register" asp-antiforgery="false" method="post" class="form-horizontal" role="form">