У меня есть существующее приложение в производстве, использующем SqlMembershipProvider и имеет указанный ключ машины:хеширование больше не работает в .NET 4.0, несмотря на MSDN обходные
<machineKey validationKey="..." decryptionKey="..."
validation="SHA1" decryption="AES"/>
Он работает под .Net 2.0 AppPool в настоящее время.
Я пишу новое приложение, которое должно использовать существующую базу данных, в которой у меня есть резервная копия. Я пытаюсь заставить SqlMembershipProvider работать с ним (что он делает), но я не могу получить известное имя пользователя/пароль. Эта учетная запись работает в prod, а хэш и соль пароля одинаковы для обеих баз данных (prod и my). Однако в тот момент, когда SqlMembershipProvider сравнивает пароль из базы данных с введенным хешированным паролем, они не совпадают.
Эта статья предполагает, нарушающие изменения с алгоритмом хэширования по умолчанию в ASP.Net в .Net 4.0: http://www.asp.net/learn/whitepapers/aspnet4/breaking-changes
Однако я уже указания ключа машины, как предложено. Кроме того, я удалил компоненты .Net 4.0 и отбросил его до 3.5 (это CLR 2), и хэш введенного пароля все тот же.
Кроме того, я попытался перераспределить это новое временное приложение на том же сервере, что и на сервере, и он все еще не может войти в систему (хотя я не могу проверить, не сработало ли оно из-за несоответствия хэша паролей).
Что еще я могу здесь попробовать?