Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 如何扩展或覆盖BeginForm以包含AntiForgeryToken字段_Security_Asp.net Mvc 3_Dry_Csrf - Fatal编程技术网

Security 如何扩展或覆盖BeginForm以包含AntiForgeryToken字段

Security 如何扩展或覆盖BeginForm以包含AntiForgeryToken字段,security,asp.net-mvc-3,dry,csrf,Security,Asp.net Mvc 3,Dry,Csrf,我正在阅读这篇关于如何防止CSRF攻击的文章()。解决方案似乎是在每个表单中创建一个标记 <%: this.Html.AntiForgeryToken(Constants.AntiForgeryTokenSalt)%> 但是,我真的不想在每个表单中复制和粘贴代码。我想扩展或覆盖BeginForm以创建自动添加AntiForgeryToken的BegSecureForm。我不知道如何在BeginForm和EndForm之间添加内容 有什么想法吗?您应该使用此选项,将令牌放置在表单

我正在阅读这篇关于如何防止CSRF攻击的文章()。解决方案似乎是在每个表单中创建一个标记

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

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


有什么想法吗?

您应该使用此选项,将令牌放置在表单后面的正确位置:

public static MvcForm BeginAntiForgeryForm(this HtmlHelper htmlHelper)
    {
        var mvcForm = htmlHelper.BeginForm();
        htmlHelper.ViewContext.Writer.Write(htmlHelper.AntiForgeryToken().ToHtmlString());
        return mvcForm;
    }

+感谢大家帮我解决了一个模糊相关的问题。