我刚刚安装了 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 已经废弃了 ValidateAntiForgeryToken 属性和 AntiForgeryToken html 帮助器的 Salt 属性。所以,现在我的代码如下所示:
控制器:
[HttpPost]
[ValidateAntiForgeryToken]
public JsonResult CreateCompany(CompanyDataEntryViewModel modelData)
{...}
形式:
@using (Html.BeginForm("", "", FormMethod.Post, new { id = "CreateCompanyDataEntryForm" }))
{
@Html.AntiForgeryToken()
...
}
查看生成的 HTML,AntiForgeryToken 仍会生成隐藏字段并提供加密值。我的行动仍然有效。但是我失去了指定要在加密过程中使用的密钥的能力。我不太确定这个过程是如何工作的,但在我知道我在动作和表单上设置盐值之前。这些值必须匹配才能使操作接受帖子。那么,你现在如何设置盐值呢?我认为它与 AntiForgeryConfig AdditionalDataProvider 有关,但我找不到任何关于如何使用 AntiForgeryConfig AdditionalDataProvider 的谷歌搜索。请帮忙。
谢谢