2010-04-29 10 views
6

Nie mogę zalogować się przy użyciu żadnego z kont członkowskich z użyciem wersji .net 4.0 aplikacji. Nie działa tak, jak to jest nieprawidłowe hasło, a wartość FailedPasswordAttemptCount jest zwiększana w tabeli my_aspnet_membership. (Używam członkostwa z dostawcą członkostwa mysql.)Logowanie kończy się niepowodzeniem po uaktualnieniu do wersji ASP.net 4.0 z 3.5

Potrafię tworzyć nowych użytkowników. Pojawiają się w bazie danych. Ale nie mogę się zalogować przy użyciu nowych danych logowania użytkownika (tak, IsApproved to 1).

Jedna wskazówka jest to, że mieszany haseł w bazie danych jest już dla użytkowników utworzonych za pomocą wersji asp.net 4.0, np 3lwRden4e4Cm + cWVY/spa8oC3XGiKyQ2UWs5fxQ5l7g =, a wszystkie stare .NET 3.5 te są jak + JQf1EcttK + 3fZiFpbBANKVa92c =.

Mogę nadal się logować, łącząc się z tą samą bazą danych z wersją .net 3.5, ale tylko ze starymi kontami, a nie nowymi utworzonymi w wersji .net 4.0. Wersja 4.0 nie może zalogować się do żadnego konta.

Próbowałem upuszczając całej bazy danych w moim systemie testowym, tabele członkostwa są następnie automatycznie tworzone na pierwszym biegu, ale to wciąż ta sama, można tworzyć użytkowników, ale nie mogę się zalogować.

Odpowiedz

13

Patrz: HERE

Domyślny algorytm mieszania się zmieniło dla .NET 4.0. Domyślny algorytm skrótu jest teraz HMACSHA256. Wcześniejsze wersje ASP.NET używały starszego algorytmu HMACSHA1.

Aby skonfigurować aplikację ASP.NET Web 4 do korzystania ze starszej algorytm HMACSHA1, należy dodać następujące ustawienia do sekcji system.Web pliku Web.config:

<machineKey validation="SHA1"/> 
+0

panu uratował dzień dla mnie . +1 –

2

Mam dokładnie ten sam problem. Mam aplikację internetową zarówno w wersji 3.5, jak i 4.0, a tylko "stare" konta działają na instancji 3.5.

Oto nadzieja, że ​​ktoś ma odpowiedź!

UPDATE:

Zmieniłem passwordFormat do jasnych i udało mi się utworzyć nowego użytkownika i zalogować się przy użyciu aplikacji 4.0. Wygląda na to, że coś się zmieniło w związku ze sposobem mieszania haseł.

UPDATE 2:

udało mi się zrobić jedną "starą" stanowi pracę. Po powyższej zmianie w parametrze passwordFormat zmieniono kolumnę PasswordFormat w my_aspnet_membership na 0 i ustawiłem hasło ręcznie w tej samej tabeli. Chociaż jest to zawiłe i niechlujne, pozwoliło kontu to zdobyć. Spróbuję uruchomić resetowanie hasła i sprawdzić, czy to naprawi uszkodzone konta.