部署AntiforgeryToken错误

use*_*779 18 asp.net-mvc web-config antiforgerytoken

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

防伪令牌无法解密.如果此应用程序由Web场或群集托管,请确保所有计算机都运行相同版本的ASP.NET网页,并且配置指定显式​​加密和验证密钥.AutoGenerate不能在群集中使用.

我从(ASPNET资源)生成了一个新的机器密钥并将其放在我的配置文件中,但仍然没有工作.有人建议解决方案吗?

小智 33

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

  • 我也是.对我来说,@ Html.AntiForgeryToken()行的第二个副本通过局部视图出现.我在局部视图中对其进行了评论,并且我的登录页面再次开始工作. (3认同)
  • 我也可以确认这件事发生在我身上. (2认同)
  • 我在IE9中发生过这种情况,我偶然嵌套了一个FORM标签.较新的浏览器很好,但较旧的浏览器发送多个令牌.(我已将jquery对话框设置为appendTo:#Main> form) (2认同)

Eri*_*oom 7

您应该添加一个网站/机器组合独有的机器密钥.这是令牌生成器使用的机器密钥.这意味着你应该生成一个机器密钥(你可以在这里(死链接 - 小心)并将其添加到你机器上的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