AntiForgeryToken在ASP.Net MVC 4 RC中弃用

Tom*_*eck 28 asp.net-mvc antiforgerytoken asp.net-mvc-3 asp.net-mvc-4

我刚刚安装了ASP.Net MVC 4 RC来取代ASP.Net MVC 4 beta.尝试运行现有应用程序时,我收到一条AntiForgeryToken已弃用的错误消息.这是我的代码:

using (Html.BeginForm("", "", FormMethod.Post, new { id = "MonthElectionForm" }))
{
    @Html.AntiForgeryToken("AddEditMonthElection")
}
Run Code Online (Sandbox Code Playgroud)

----更新---

ASP.Net MVC 4 RC使得Salt属性对于ValidateAntiForgeryToken属性和AntiForgeryToken html帮助程序已经过时.所以,现在我的代码看起来像这样:

控制器:

        [HttpPost]
        [ValidateAntiForgeryToken]
        public JsonResult CreateCompany(CompanyDataEntryViewModel modelData)
       {...}
Run Code Online (Sandbox Code Playgroud)

形成:

@using (Html.BeginForm("", "", FormMethod.Post, new { id = "CreateCompanyDataEntryForm" }))
{
    @Html.AntiForgeryToken()
...
}
Run Code Online (Sandbox Code Playgroud)

查看生成的HTML,AntiForgeryToken仍会生成隐藏字段并提供加密值.我的行动仍然有效.但是我已经失去了在加密过程中指定密钥的能力.我不太确定这个过程是如何工作的,但在我告诉我之前我已经在动作和表单上设置了salt值.值必须匹配才能使操作接受帖子.那么,你现在如何设置盐值?我认为它与AntiForgeryConfig AdditionalDataProvider有关但我找不到任何关于如何使用AntiForgeryConfig AdditionalDataProvider的谷歌搜索.请帮忙.

谢谢

Lev*_*evi 43

设置salt参数是不必要的,并且没有提供任何额外的保护,因此我们删除了对它的支持.

有关详细信息,请参阅如何为ValidateAntiForgeryToken选择salt值的响应.