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