Подтвердить что ты не робот

Ключ машины изменяется при повторном использовании пула приложений

Я использую API MachineKey для шифрования/дешифрования части информации в приложении ASP.NET. Я использую

MachineKey.Encode(data, MachineKeyProtection.All)

и

MachineKey.Decode(data, MachineKeyProtection.All)

методов API. Все работает отлично в Windows 8 и Windows Server 2012, когда включен профиль пользователя. Проблема по какой-то причине не переносит перезапуск пула приложений на Windows Server 2008 R2 with IIS 7.5.

Первоначально у меня создалось впечатление, что мне нужно включить параметр Загрузить профиль пользователя в Пул приложений, но это не имеет никакого значения. Любая идея, что я могу здесь пропустить?

Спасибо

4b9b3361

Ответ 1

Может случиться так, что новый машинный ключ генерируется IIS каждый раз, когда пул приложений перерабатывается. Попробуйте установить статический ключ машины в вашем web.config, как описано здесь: Совет IIS 7 # 10 Вы можете сгенерировать машинные ключи из диспетчера IIS. Без явной установки статического ключа машины ключ шифрования/дешифрования является движущейся целью.

Ответ 2

@pstricker прав, если нет машинного ключа, тогда при запуске пула приложений создается новый ключ. API MachineKey основан на машинном ключе, поэтому его необходимо установить где-то. Если вы не хотите устанавливать machineKey в веб-конфигурацию приложения, вы все равно можете сделать это в конфигурации сервера, здесь: "C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config"

Кроме того, если вы хотите использовать ключ для каждого пула приложений, вы можете сделать то, что описано здесь.