【问题标题】:Access to current AntiForgeryToken to HtmlHelper访问当前 AntiForgeryToken 到 HtmlHelper
【发布时间】:2014-07-05 19:59:19
【问题描述】:

我可以访问当前针对HtmlHelper扩展方法生成的AntiForgeryToken吗?

类似这样的:

public static string AntiForgeryTokenValue(this HtmlHelper helper)
{

}

【问题讨论】:

  • 我可以将 AntiForgeryToken 保存到 ViewData"ViewData["AntiForgeryToken"] = Html.AntiForgeryToken();"并在 HtmlHelper 中访问。但是,我正在寻找更好的方法。

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 asp.net-mvc-2 antiforgerytoken


【解决方案1】:

您可以从传入的请求中获取当前的防伪令牌值...如下所示

MVC 将此值保存在名为 __RequestVerificationToken...的隐藏表单字段中...

HttpContext.Current.Request.Headers["__RequestVerificationToken"]

你也可以像下面这样进入客户端:-

$('input[name="__RequestVerificationToken"]').val()

(但是为什么在渲染视图时需要它的值在 HtmlHelper 中)

【讨论】:

  • 您可能想要访问它的一个原因是,它是一个方便的保证表单的唯一标识符。因此,如果您的表单帖子添加了数据库实体,您可以使用它来防止重复提交重复点击提交按钮并因此重复实体。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-24
  • 1970-01-01
  • 1970-01-01
  • 2011-11-06
  • 2016-11-19
相关资源
最近更新 更多