2010-04-29 6 views
6

Ich kann mich nicht mit einem der Mitgliedschaft Konten mit. NET 4.0-Version der App anmelden. Es schlägt fehl, als wäre es das falsche Passwort, und FailedPasswordAttemptCount wird in der Tabelle my_aspnet_membership inkrementiert. (Ich verwende Mitgliedschaft mit MySQL-Mitgliedschaft-Provider.)Anmeldung fehlgeschlagen nach dem Upgrade auf ASP.net 4.0 von 3.5

Ich kann neue Benutzer erstellen. Sie erscheinen in der Datenbank. Aber ich kann mich nicht mit den neuen Benutzerdaten einloggen (Ja, IsApproved ist 1).

Ein Anhaltspunkt ist, dass die Hash-Passwörter in der Datenbank mehr für die Benutzer erstellt, um die asp.net 4.0-Version, zB 3lwRden4e4Cm + cWVY/spa8oC3XGiKyQ2UWs5fxQ5l7g = und die alten .net 3.5 diejenigen sind alle gefallen + JQf1EcttK + 3fZiFpbBANKVa92c =.

Ich kann mich immer noch anmelden, wenn ich mit der .net 3.5-Version eine Verbindung zur gleichen Datenbank herstelle, aber nur zu den alten Konten, nicht zu den neuen, die mit der .net 4.0-Version erstellt wurden. Die Version 4.0 kann sich nicht bei Konten anmelden.

ich die gesamte Datenbank auf meinem Testsystem versucht fallen, werden die Mitgliedstabellen dann automatisch bei der ersten Ausführung erstellt, aber es ist immer noch die gleichen, Benutzer erstellen können, aber melden Sie sich nicht in.

Antwort

13

See: HERE

Der Standard-Hashing-Algorithmus wurde für .net 4.0 geändert. Standard-Hash-Algorithmus ist jetzt HMACSHA256. Frühere Versionen von ASP.NET verwendeten den älteren HMACSHA1-Algorithmus.

eine ASP.NET 4 Web-Anwendung zu konfigurieren, dass die ältere HMACSHA1 Algorithmus zu verwenden, fügen Sie die zu dem system.web Abschnitt der Datei Web.config folgende Einstellung:

<machineKey validation="SHA1"/> 
+0

Sie Sir mir den Tag gerettet . +1 –

2

das ich habe, das genau gleiche Problem. Ich habe meine Webanwendung in 3.5 und 4.0 und nur die "alten" Konten arbeiten auf der 3.5-Instanz.

Hier ist zu hoffen, jemand hat eine Antwort!

UPDATE:

änderte ich den password zu löschen und ich konnte einen neuen Benutzer erstellen und mit der 4.0-Anwendung anmelden. Sieht so aus, als ob sich die Art und Weise, wie die Passwörter verschlüsselt werden, geändert hat.

UPDATE 2:

konnte ich einen der "alten" Arbeit macht machen. Mit der obigen Änderung von passwordFormat habe ich die PasswordFormat-Spalte in my_aspnet_membership auf 0 geändert und das Passwort manuell in derselben Tabelle festgelegt. Während dies verschlungen und unordentlich ist, ließ es das Konto es bekommen. Ich werde versuchen, das Zurücksetzen des Kennworts auszuführen und zu überprüfen, ob das die fehlerhaften Konten behebt.