如何在ASP.NET MVC应用程序中使用AntiForgeryToken创建元标记?

时间:2016-08-18 15:51:30

标签: c# asp.net-mvc asp.net-mvc-5

我正在尝试使用ASP.NET NVC来编写应用程序。

我想在包含Meta的页眉中添加AntiForgeryToken标记。我希望能够通过jQuery阅读,而无需将@Html.AntiForgeryToken()添加到手动提交的表单中。

我知道@Html.AntiForgeryToken()会生成一个隐藏的输入字段,但我需要添加一个元标记nstead。

如何在不更改@Html.AntiForgeryToken()的情况下执行此操作?

1 个答案:

答案 0 :(得分:0)

如果您仍然希望在meta标签中包含CSRF令牌,请尝试执行以下操作:

在您的_Layout.cshtml文件中:

@inject Microsoft.AspNetCore.Antiforgery.IAntiforgery Csrf
@function
{
  public string GetCsrfToken()
  {
    return Csrf.GetAndStoreTokens(Context).RequestToken;
  }
}

然后在您的head标签内,如下放置以下meta标签:

<meta charset="UTF-8" content="@GetCsrfToken()" csrf-param="_csrf_token" method-param="_method" name="csrf-token">