Миграция MachineKey с iis6 на старом сервере на iis7 на новом сервере - PullRequest
3 голосов
/ 19 февраля 2010

Я перевожу нашу хостинговую среду в совершенно новый центр обработки данных с новыми блоками, аппаратным и программным обеспечением ... все дело.

Файлы cookie нашего веб-сайта шифруются с использованием machineKey, поэтому, когда я делаю запрос к своему домену и указываю его на новый веб-сервер (переопределяя файл локальных хостов), я получаю сообщение об ошибке, поскольку файл cookie не может быть расшифрован, Ключ машины отличается. Я хотел бы избежать проблем, с которыми могут столкнуться частые пользователи, когда они впервые попадают на новый сервер.

Насколько мне известно, на данный момент я думаю, что мне нужно установить тот же MachineKey из наших текущих серверов на наших новых серверах. Таким образом, когда прошлые посетители с файлом cookie попадают на наш веб-сайт, обслуживаемый новым сервером, файл cookie будет должным образом расшифрован с помощью ключа MachineKey, с которым он был зашифрован, и затем войдет в систему надлежащим образом.

У меня вопрос: где мне найти значение MachineKey (на сервере IIS 6 win2k3), чтобы я мог использовать это значение для статической установки на моих новых серверах? Я поднял мой файл machine.config, но он не указывает ключ, он только указывает configSection, где ключ может быть определен. Его нет в моем web.config для приложения или где-либо еще.

Я нашел эту замечательную статью о некоторых проблемах MachineKey и Web Garden (которые могли бы объяснить некоторые другие ошибки, с которыми я столкнулся в отношении machineKey).

Обновление Я вернулся к этой проблеме и все еще сталкиваюсь с подобной проблемой. У меня автоматически генерируется MachineKey на сервере IIS6, но мне нужно получить именно этот ключ, чтобы я мог установить его явно и больше не генерировать его автоматически.

Любая помощь приветствуется ...

Ответы [ 2 ]

1 голос
/ 14 марта 2010

Вы видели это ?

Похоже, вы можете получить его, посмотрев на

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

Однако они являются внутренними, поэтому вам придется использовать отражение.

0 голосов
/ 15 марта 2010

Есть два машинных ключа, которые вы можете использовать. Я не уверен, какой из них вы используете для шифрования. Но вот два механических ключа в любом случае ...

  1. C: \ Documents and Settings \ Все пользователи \ Данные приложения \ Microsoft \ Crypto \ RSA \ MachineKeys
  2. http://support.microsoft.com/kb/312906. Вы не должны сохранять его как AutoGenerate, иначе ключи машины будут автоматически сгенерированы на всех машинах и, следовательно, он будет другим.

НТН, Рахул

...