Security 如何扩展或覆盖BeginForm以包含AntiForgeryToken字段
我正在阅读这篇关于如何防止CSRF攻击的文章()。解决方案似乎是在每个表单中创建一个标记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之间添加内容 有什么想法吗?您应该使用此选项,将令牌放置在表单
<%: 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;
}
+感谢大家帮我解决了一个模糊相关的问题。