У меня есть приложение, которое я недавно перенес с IIS6 (Windows 2003) (7 Classic Pipeline) на IIS7 (Windows 2008) Integrated Pipeline.
Проблема, которую я заметил, заключается в том, что хэши паролей, созданные в системе IIS6, больше не совпадают, когда мы пытаемся войти в систему в системе IIS7. Однако, когда мы повторно генерируем хеш в системе IIS7, он работает нормально.
Я где-то читал, что существуют различия в криптографических системах между двумя (2003/2008) и их соответствующими версиями IIS, но я не смог найти никакой дополнительной информации.
Я здесь в растерянности, мне нужны существующие хэши для работы в новой системе, и я не могу найти отправную точку.
Если кто-то знает какие-либо ресурсы, которые могут помочь с этим, или настройкой, или чем-то еще, я был бы очень признателен.
Многие функции криптографии в .NET полагаются на machineKey, который может храниться в web.config или machine.config. Если вам нужно несколько или других серверов IIS, чтобы иметь возможность шифровать / расшифровывать одни и те же общие данные, все серверы должны быть настроены на использование одного и того же machineKey.
«Если вы используете функцию членства, хэши паролей по умолчанию сохраняются в базе данных членства. Система членства также поддерживает зашифрованные пароли. Если вы выберете зашифрованный формат пароля, то <machineKey>
настройки используются при шифровании и дешифровании данных ».
ссылка: http://msdn.microsoft.com/en-us/library/ff649308.aspx#paght000007_membership
Если вы уже указали machineKey, может быть проблема с алгоритмом по умолчанию, который был критическим изменением в .Net 4.0. По умолчанию теперь SHA256; вам может потребоваться изменить это обратно на SHA1 в атрибуте проверки machineKey, а также указать hashAlgorithmType в разделе членства:
<system.web>
<membership defaultProvider="myMembership" hashAlgorithmType="SHA1">
...
</system.web>
http://geekswithblogs.net/DavidHoerster/archive/2010/06/15/asp.net-membership-password-hash----.net-3.5-to-.net-4.aspx
https://stackoverflow.com/questions/3438197/hashing-no-longer-works-in-net-4-0-desITE-msdn-workarounds
http://www.asp.net/learn/whitepapers/aspnet4/breaking-changes#0.1__Toc256770148