3

我正在将我们的托管环境迁移到一个全新的数据中心,其中包含新的盒子、硬件和软件……整个交易。

我们的网站 cookie 使用 machineKey 加密,因此当我向我的域发出请求并将其指向新的 Web 服务器(通过覆盖本地主机文件)时,我收到一个错误,因为无法解密 cookie,因为机器密钥是不同的。我想避免频繁用户第一次到达新服务器时可能遇到的任何问题。

据我所知,此时我认为我需要在我们的新服务器上设置与当前服务器相同的 MachineKey。这样,当带有 cookie 的过去访问者到达由新服务器提供服务的我们的网站时,cookie 将使用加密的 MachineKey 正确解密,然后正确登录。

我的问题是我在哪里可以找到我的 MachineKey 值(在 IIS 6 win2k3 服务器中),以便我可以使用该值在我的新服务器上静态设置它?我已经提取了我的 machine.config 文件,但它没有指定密钥,它只指定了一个可以定义密钥的 configSection。它不在我的应用程序或其他地方的 web.config 中。

我确实找到了这篇关于 MachineKey 和 Web Garden 问题的精彩文章(这可以解释我在 machineKey 方面遇到的一些其他错误)。

更新 我回到了这个问题,但仍然面临类似的问题。我在 IIS6 服务器上自动生成了 MachineKey,但我需要获取那个确切的密钥,以便我可以明确设置它并且不再自动生成它。

任何帮助表示赞赏...

4

2 回答 2

1

你见过这个吗?

看起来你可以通过查看来检索它

  • System.Web.Configuration.MachineKeySecion.DecryptionKeyInternal
  • System.Web.Configuration.MachineKeySecion.ValidationKeyInternal

然而,这些是内部的,所以你必须使用反射。

于 2010-03-14T20:51:17.453 回答
0

您可以使用两个 machineKey。我不确定您使用的是哪一个来加密。但无论如何,这里有两个机器钥匙......

  1. C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys
  2. http://support.microsoft.com/kb/312906。您不应该将其保留为 AutoGenerate,否则 machineKeys 将在所有机器上自动生成,因此会有所不同。

HTH,拉胡尔

于 2010-03-15T15:32:17.947 回答