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

Я использую MachineKey API для шифрования/дешифрования части информации в приложении 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.

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

Спасибо


person Leadfoot    schedule 13.11.2015    source источник


Ответы (2)


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

person pstricker    schedule 19.11.2015
comment
На самом деле идея использования MachineKey API заключалась в том, чтобы заменить DPAPI и не беспокоиться о ручной настройке машинного ключа. Статический машинный ключ работает, но это не вариант, поскольку API должен работать без него, обеспечивая уникальный ключ для настроек IIS. - person Leadfoot; 20.11.2015

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

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

person Tamas    schedule 27.11.2015