将MachineKey从旧服务器上的iis6迁移到新服务器上的iis7

时间:2010-02-19 00:29:07

标签: cookies asp.net-2.0 machinekey

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

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

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

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

我确实在一些MachineKey和Web Garden问题上找到this great article(这可以解释我在机器密钥方面遇到的其他一些错误)。

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

感谢任何帮助...

2 个答案:

答案 0 :(得分:1)

你见过this吗?

看起来你可以通过查看

来检索它
  • System.Web.Configuration.MachineKeySecion.DecryptionKeyInternal
  • System.Web.Configuration.MachineKeySecion.ValidationKeyInternal

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

答案 1 :(得分:0)

您可以使用两个machineKey。我不确定您使用哪一个加密。但是这里有两个机器密钥......

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