CSRF在ASP.net webform app中同步令牌模式实现,我在aspx页面中添加了这个<%= System.Web.Helpers.AntiForgery.GetHtml()%>和protected void Page_Load(object sender,EventArgs e){if(IsPostBack) )AntiForgery.Validate();它完美无缺。现在我要求在100多个页面和多个应用程序之间实现类似的更改,在当前的框架中,每个页面都有基类\ view我添加了AntiForgery.Validate();在overiden方法Page_Load()但是如何动态地通过C#代码在aspx页面中添加这个<%= System.Web.Helpers.AntiForgery.GetHtml()%>代码?
基本上,如何使用C#代码动态地将<%= System.Web.Helpers.AntiForgery.GetHtml()%>添加到所有asp.net Web表单中?
namespace WebAppForXSRF
{
public partial class SiteMaster : MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
AntiForgery.Validate();
}
}
protected override void OnInit(EventArgs e)
{
LiteralControl literalContols = new LiteralControl();
literalContols.Text = System.Web.Helpers.AntiForgery.GetHtml().ToHtmlString();
this.MasterForm.Controls.Add(literalContols);
}
}