0

我的公司最近遇到了流量高峰,因此我们尝试启动额外的 EC2 实例来处理负载。不幸的是,这会导致用户使用 cookie 出现问题(即,即使您提供了凭据,网站仍然要求登录)。我们认为这是因为我们忽略了在 Web.config 文件中设置机器密钥(每台负载平衡机器上的 Web.config 文件在其他方面都是相同的)。

我们现在处于不想在 Web.config 中设置新机器密钥值的位置,因为这将注销我们所有的匿名用户,他们可能已经将商品添加到他们的购物车等。但是我们也想支持缩放。

所以,问题:

  1. 我们的假设是否正确,即机器密钥是用户需要新 cookie 的罪魁祸首?
  2. 有没有办法确定正在使用的当前或默认机器密钥,以便我们可以将其复制到其他负载平衡服务器?
  3. 失败2,有没有办法在不丢失我们匿名用户数据的情况下设置新的机器密钥?
4

1 回答 1

1

您没有提到您正在使用哪种身份验证方法,但如果它是表单身份验证,那么是的 - 您的机器密钥需要在您的场中的所有服务器上匹配。你还应该确保你的所有机器都得到了同样的补丁,因为已经有几个补丁(特别是 asp.net 安全漏洞更新)更新了密码位。

如果您使用默认配置,则机器密钥很可能设置为 AutoGenerate。据我所知,没有简单的方法可以显示自动生成的机器密钥设置为什么。但是,由于您可以访问现有服务器,因此您可能可以通过一些反射代码找到它,如下所示:

http://aspnetresources.com/blog/how_to_read_auto_generated_machinekey

于 2011-05-16T21:51:03.453 回答