【问题标题】:deploying AntiforgeryToken Error部署 AntiforgeryToken 错误
【发布时间】:2013-04-03 13:37:33
【问题描述】:

我正在使用 IISExpress 中内置的 Visual Studio 2012 在我的本地计算机上开发 ASP.NET MVC 应用程序。在取得重大进展后,我决定在本地网络上提供它,我从 Visual Studio 创建了一个虚拟目录。我可以登录,但是当我尝试注册新用户时。我收到以下错误。

无法解密防伪令牌。如果这个应用程序是 由主办 Web Farm 或集群,确保所有机器都运行相同版本的 ASP.NET 网页和配置指定显式 加密和验证密钥。 AutoGenerate 不能在集群中使用。

我从 (ASPNET resources) 生成了一个新的机器密钥并将其放在我的配置文件中,但仍然无法使用。有人可以提出解决方案吗?

【问题讨论】:

  • 请不要将“ASP.NET MVC”简单地称为“MVC”。一种是框架,另一种是与语言无关的设计模式。这就像调用 IE - “互联网”
  • 虽然我同意在使用“MVC”而不是“ASP.NET MVC”搜索互联网时可能会导致您花费大量额外时间来寻找解决方案.. 但在这种情况下只需查看为该问题选择的 SO Tag 即可了解 OP 在说什么。
  • 查看 asp.net mvc 版本号也无妨
  • 我在 IE11 中间歇性地遇到了这个问题。我有两种形式,每一种都有自己的标记。我发现发送了两个名为 __RequestVerificationToken 的 cookie,它们的值不同。一旦我删除了 cookie(全部用于域),问题就消失了。我不知道为什么 cookie 首先存在,以及它们与表单字段的对应关系。

标签: asp.net-mvc web-config antiforgerytoken


【解决方案1】:

我注意到的一件事是,此错误可能是由页面上有多个 @Html.AntiForgeryToken() 代码段引起的。我的页面上有 2 个,一旦我删除了第二个,这个错误就消失了。

【讨论】:

  • 我可以确认这也发生在我身上。
  • 我也是。对我来说,@Html.AntiForgeryToken() 行的第二个副本是通过部分视图出现的。我在部分视图中将其注释掉,我的登录页面又开始工作了。
  • 我在 IE9 中遇到过这种情况,我不小心嵌套了一个 FORM 标签。较新的浏览器很好,但较旧的浏览器发送多个令牌。 (我已将 jquery 对话框设置为 appendTo :#Main>form)
  • 我也有同样的问题。我确实有两个@html.antiforgerytoken,但是当我删除它们(部分视图中的那个)时,错误仍然存​​在。更重要的是,即使我在 localhost 中运行,它仍然会给我错误。你能帮帮我吗?
  • 是的,这里也一样。我在父视图中有一个生成的令牌,在实际表单元素所在的部分中有一个。感谢路易斯的提示!
【解决方案2】:

您应该添加对网站/机器组合唯一的机器密钥。令牌生成器使用的是这个机器密钥。这意味着您应该生成一个机器密钥(您可以执行 here (dead link-beware) 并将其添加到您机器上的 Web.config 文件中。您可以在此处找到更多信息: http://msdn.microsoft.com/en-us/library/ff649308.aspx

您也可以直接在 IIS 中执行此操作:http://blogs.msdn.com/b/amb/archive/2012/07/31/easiest-way-to-generate-machinekey.aspx

【讨论】:

  • 阅读我的帖子,我之前已经尝试过了。我注意到我的 IIS 管理器面板中没有机器密钥图标。这可能是问题吗?
  • 是的,这肯定是问题所在。也许您将 machineKey 条目放置在 Web.config 文件中的错误位置。您能否发布您的 Web.config,以便我们查看您添加它的方式和位置?
【解决方案3】:
【解决方案4】:

在我的情况下,这是负载均衡器没有为站点启用会话持久性的问题。

【讨论】:

    【解决方案5】:

    我有一个使用局部视图的页面。两者都包含 @Html.AntiForgeryToken() 并且在从部分页面中删除 @Html.AntiForgeryToken() 时,它起作用了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-10
      • 2017-10-28
      • 2017-10-23
      • 2010-10-16
      • 2011-12-28
      相关资源
      最近更新 更多