我刚刚安装了 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)
{...}
form:
@using (Html.BeginForm("", "", FormMethod.Post, new { id = "CreateCompanyDataEntryForm" }))
{
@Html.AntiForgeryToken()
...
}
查看生成的 HTML,AntiForgeryToken 仍然生成隐藏字段并提供加密值。我的动作还是有效的。但我失去了指定在加密过程中使用的密钥的能力。我不太确定这个过程是如何工作的,但在我知道之前,我正在为操作和表单设置盐值。这些值必须匹配才能使操作接受该帖子。那么,现在如何设置盐值呢?我认为这与 AntiForgeryConfig DifferentialDataProvider 有关,但我无法通过谷歌搜索找到任何有关如何使用 AntiForgeryConfig DifferentialDataProvider 的信息。请帮忙。
Thanks
设置salt参数是不必要的,并且不提供任何额外的保护,因此我们删除了对它的支持。
请参阅我的回复如何为 ValidateAntiForgeryToken 选择盐值 https://stackoverflow.com/questions/9444214/how-to-choose-a-salt-value-for-validateantiforgerytoken了解更多信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)