【问题标题】:ASP.NET MVC @Html.AntiForgeryToken()ASP.NET MVC @Html.AntiForgeryToken()
【发布时间】:2013-02-22 06:10:14
【问题描述】:

@Html.AntiForgeryToken() 在 asp.net MVC 中生成一个像这样的隐藏文本框

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

有没有办法重命名__RequestVerificationToken?

我想将其重命名为无法追溯到 ASP.Net MVC 的名称

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

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

    然后在这个扩展方法中你只需调用 AntiForgeryToken 拦截它的 html,并修改 id。

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

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

    【讨论】:

    • 我想将其重命名为无法追溯到 ASP.Net MVC 的名称。
    • 好的,我明白了,这将对您在答案中写的内容有所帮助。但是,如果您不希望它被追溯,为什么还要使用 AntiForgeryToken()?您是否正在编写自定义处理它?还是您将此令牌用于其他用途?无论如何,让我知道我的回答是否对您有帮助。 :)
    • 你知道asp.net MVC的其他csrf类吗?
    • 我不知道任何其他特殊库。我建议您阅读以下内容:blog.stevensanderson.com/2008/09/01/…。如果我知道您的问题,我可以为您提供更多帮助。
    猜你喜欢
    • 2011-07-10
    • 2016-10-24
    • 2016-08-21
    • 2018-01-04
    • 2017-11-30
    • 2015-09-06
    • 1970-01-01
    • 2011-06-24
    • 2013-12-04
    相关资源
    最近更新 更多