14

使用ASP.Net MVC v2.0,我开始研究在提交处理数据的表单时使用Html.AntiForgeryToken()方法。我可以看到它以HTML格式设置了一个隐藏值,并在会话cookie中设置了相同的值。ASP.Net MVC的AntiForgeryToken方法可以与负载平衡器一起使用吗?

问题是负载均衡配置中的不同web服务器会在HTML表单中创建相同的标记吗?看来,如果他们不那么cookie和隐藏的表单值不匹配,我们会有问题。在我实际测试LB配置之前,想要检查是否有人已经有这方面的经验?

谢谢,保罗

回答

18

如果服务器场中的共享相同的<machineKey>所有的机器,一切都将正常工作。有关于如何设置此的lots of resources。还有a tutorial on MSDN

注意名称<machineKey>是有点误导,因为这是每个应用程序在~/Web.config实际设置。因此,请在应用程序的Web.config中明确设置<machineKey>,然后在您的服务器场中进行部署。

+0

好的,我应该假设使用了machineKey。感谢你的回答。 – 2010-08-06 17:50:56

+1

如果您懒得为您的配置文件创建一个machinekey行:http://aspnetresources.com/tools/machineKey – nashwan 2012-12-06 15:20:46

+1

nashwan,使用您自己没有生成的machineKey是危险的。它可能最终会危害您的网站的安全。 – Levi 2014-03-14 16:19:18