如何扩展或重写 BeginForm 以包含 AntiForgeryToken 字段

2024-03-07

我正在读这篇文章(http://weblogs.asp.net/dixin/archive/2010/05/22/anti-forgery-request-recipes-for-asp-net-mvc-and-ajax.aspx http://weblogs.asp.net/dixin/archive/2010/05/22/anti-forgery-request-recipes-for-asp-net-mvc-and-ajax.aspx)关于如何防止 CSRF 攻击。看来解决方案是在每个表单中创建一个标签。

<%: this.Html.AntiForgeryToken(Constants.AntiForgeryTokenSalt)%>

但是,我真的不想将该代码复制并粘贴到每个表单中。我想扩展或覆盖 BeginForm 以创建一个自动添加 AntiForgeryToken 的 BeginSecureForm。我不知道如何在 BeginForm 和 EndForm 之间添加内容。

有任何想法吗?


您应该使用它,将令牌放置在表单之后的正确位置:

public static MvcForm BeginAntiForgeryForm(this HtmlHelper htmlHelper)
    {
        var mvcForm = htmlHelper.BeginForm();
        htmlHelper.ViewContext.Writer.Write(htmlHelper.AntiForgeryToken().ToHtmlString());
        return mvcForm;
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何扩展或重写 BeginForm 以包含 AntiForgeryToken 字段 的相关文章

随机推荐