AntiForgeryToken在ASP.Net MVC 4 RC中弃用

时间:2012-06-01 13:33:40

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 antiforgerytoken

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

using (Html.BeginForm("", "", FormMethod.Post, new { id = "MonthElectionForm" }))
{
    @Html.AntiForgeryToken("AddEditMonthElection")
}

----更新---

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

控制器:

        [HttpPost]
        [ValidateAntiForgeryToken]
        public JsonResult CreateCompany(CompanyDataEntryViewModel modelData)
       {...}

形式:

@using (Html.BeginForm("", "", FormMethod.Post, new { id = "CreateCompanyDataEntryForm" }))
{
    @Html.AntiForgeryToken()
...
}

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

由于

1 个答案:

答案 0 :(得分:43)

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

请在How to choose a salt value for ValidateAntiForgeryToken查看我的回复,了解更多信息。