2010-02-19 4 views
3

Je suis en train de migrer notre environnement d'hébergement vers un centre de données entièrement nouveau avec de nouvelles boîtes et du matériel et des logiciels ... tout l'accord.Migration de MachineKey depuis iis6 sur l'ancien serveur vers iis7 sur le nouveau serveur

Les cookies de notre site sont cryptés à l'aide de la machineKey, donc lorsque je demande à mon domaine et le pointe vers le nouveau serveur web (en remplaçant le fichier hosts local), j'obtiens une erreur car le cookie ne peut pas être déchiffré. puisque la clé de la machine est différente. Je souhaite éviter les problèmes que les utilisateurs fréquents pourraient rencontrer lorsqu'ils arrivent sur le nouveau serveur pour la première fois. Au meilleur de ma connaissance, à ce stade, je pense que je dois définir la même MachineKey à partir de nos serveurs actuels sur nos nouveaux serveurs. De cette façon, lorsque les visiteurs précédents avec un cookie arrivent sur notre site web servi par le nouveau serveur, le cookie sera décrypté correctement avec MachineKey avec lequel il a été chiffré, puis connectez-vous correctement.

Ma question est où puis-je trouver ma valeur MachineKey (dans le serveur I2 6 win2k3) afin que je puisse utiliser cette valeur pour le définir de façon statique sur mes nouveaux serveurs? J'ai extrait mon fichier machine.config, mais il ne spécifie pas la clé, il ne spécifie qu'une configSection où la clé peut être définie. Ce n'est pas dans mon web.config pour l'application ou ailleurs.

J'ai trouvé this great article sur certains problèmes MachineKey et Web Garden (ce qui pourrait expliquer d'autres bogues que j'ai rencontrés à propos de la machineKey). Je suis de retour à ce problème et je suis toujours confronté à un problème similaire. J'ai la MachineKey générée automatiquement sur le serveur IIS6 mais j'ai besoin d'obtenir cette clé exacte afin que je puisse la définir explicitement et ne plus l'avoir générée automatiquement.

Toute aide est appréciée ...

Répondre

1

Avez-vous vu this?

On dirait que vous pouvez le récupérer en regardant

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

Ce sont cependant interne, de sorte que vous devrez utiliser la réflexion.

+0

C'est génial! Cependant, cet article est en C# 3.5 et je suis coincé en 2.0. J'ai essayé d'obtenir ces propriétés internes en utilisant la réflexion et n'ai pas eu de chance pour le moment. – MaseBase

+0

Ce fut la bonne réponse pour moi, mais je n'ai pas de coche pour le marquer correctement! Il m'a fallu un certain temps pour obtenir le code de réflexion car le lien l'avait dans .NET 3.5 et j'étais dans .NET 2.0 - n'utilisez pas beaucoup de réflexion, mais cela a résolu mon problème! – MaseBase

0

Vous pouvez utiliser deux touches machine. Je ne suis pas sûr de celui que vous utilisez pour crypter. Mais voici les deux MachineKeys ... de toute façon

  1. C: \ Documents and Settings \ All Users \ Application Data \ Microsoft \ Crypto \ RSA \ MachineKeys
  2. http://support.microsoft.com/kb/312906. Vous ne devriez pas le garder comme AutoGenerate, sinon les machineKeys seront générés automatiquement sur toutes les machines et donc, ce serait différent.

HTH, Rahul

+1

Oui, je ne veux pas le garder comme auto-générer, mais je ne veux pas commencer avec une autre nouvelle clé. Ce que je cherche à faire est d'obtenir la clé générée automatiquement, afin que je puisse régler cela et assurer que mes cookies et les données cryptées peuvent être consultés aller de l'avant. – MaseBase

+0

Je ne pense pas que ça vaut la peine MaseBase. Vous devez le mettre sur toutes les machines de toute façon pour le faire fonctionner. Autant que je le sac, les changements de clés générés automatiquement lors de la réinitialisation d'IIS/machine. –

Questions connexes