2010-04-29 1 views
6

Я не могу войти в систему, используя любую из учетных записей членства, используя .net 4.0 версию приложения. Он терпит неудачу, как неправильный пароль, а FailPasswordAttemptCount увеличивается в таблице my_aspnet_membership. (Я использую членство с провайдером членства mysql.)Ошибка входа в систему после обновления до ASP.net 4.0 из 3.5

Я могу создавать новых пользователей. Они отображаются в базе данных. Но я не могу войти в систему с использованием новых учетных данных пользователя (да, IsApproved - 1).

Один ключ, что хэшированного пароли в базе данных больше для пользователей, созданные с помощью версии asp.net 4.0, например 3lwRden4e4Cm + cWVY/spa8oC3XGiKyQ2UWs5fxQ5l7g =, а старые .NET 3.5 из них все любят + JQf1EcttK + 3fZiFpbBANKVa92c знак равно

Я все еще могу войти в систему при подключении к тому же db с версией .net 3.5, но только для старых учетных записей, а не для новых, созданных с помощью версии .net 4.0. Версия 4.0 не может войти в учетную запись.

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

ответ

13

См: HERE

алгоритм хэширования по умолчанию изменилось .net 4.0. Алгоритм Хеширования по умолчанию теперь HMACSHA256. В более ранних версиях ASP.NET использовался более старый алгоритм HMACSHA1.

Чтобы настроить 4 веб-приложения ASP.NET, чтобы использовать более старый алгоритм HMACSHA1, добавьте следующие настройки в разделе system.web файла Web.config:

<machineKey validation="SHA1"/> 
+0

, сэр спас день для меня , +1 –

2

Я, имеющий то же самое. У меня есть мое веб-приложение как в 3.5, так и 4.0, и только «старые» учетные записи работают над экземпляром 3.5.

Вот надежда, что у кого-то есть ответ!

UPDATE:

Я изменил passwordFormat очистить и я был в состоянии создать нового пользователя и войти с приложением 4.0. Похоже, что что-то изменилось с тем, как пароли хэшируются.

UPDATE 2:

Я был в состоянии сделать один из "старых" счетов работу. С приведенным выше изменением пароляFormat я изменил столбец PasswordFormat в my_aspnet_membership на 0 и вручную установил пароль в той же таблице. Хотя это запутанно и беспорядочно, оно позволяет учетной записи получить его. Я попытаюсь запустить сброс пароля и посмотреть, исправляет ли он неисправные аккаунты.

Смежные вопросы