ASP.NET MVC @ Html.AntiForgeryToken()

时间:2013-03-07 06:23:01

标签: asp.net-mvc

asp.net MVC中的@html.AntiForgeryToken()生成一个隐藏的文本框,如下所示

<input name="__RequestVerificationToken" type="hidden" value="9VYEYXQIIGVOBcPluxTIWOHeYoRlklCBh7RztWXJUWxFbPwIok2rVpeS_i1jfxdB1_n16BCV5qH9VsBhkMdZB1Ukb5g1" />

有没有办法重命名__RequestVerificationToken?

我想将它重命名为无法追溯到ASP.Net MVC的东西

1 个答案:

答案 0 :(得分:0)

不确定。我建议您为具有相同名称的Html帮助程序(this HtmlHelper)创建扩展方法,只需要适当的重载,您就可以指定自定义ID。 (注意已经存在一些重载,所以也许最好将它重命名为“AntiForgeryTokenCustom(string id)”。

然后在此扩展方法中,您只需调用AntiForgeryToken拦截其html,并修改ID。

但问题是你为什么喜欢它?您是否计划对此令牌进行自定义验证?这种“防伪”令牌基础设施需要这个id名称......

编辑:如果要自定义帮助程序,还可以自定义处理令牌的操作筛选器。默认操作文件管理器为[ValidateAntiForgeryToken]您必须覆盖它。您可以在此处找到一些提示:http://haacked.com/archive/2011/10/10/preventing-csrf-with-ajax.aspx