我刚刚安装了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的谷歌搜索。请帮忙。
由于
答案 0 :(得分:43)
设置 salt 参数是不必要的,并且没有提供任何额外保护,因此我们删除了对它的支持。
请在How to choose a salt value for ValidateAntiForgeryToken查看我的回复,了解更多信息。