2010-04-29 12 views
6

Je ne peux pas me connecter en utilisant l'un des comptes de membre utilisant la version .net 4.0 de l'application. Il échoue comme si le mot de passe était incorrect et FailedPasswordAttemptCount est incrémenté dans la table my_aspnet_membership. (J'utilise l'adhésion avec le fournisseur d'appartenance mysql.)La connexion échoue après la mise à niveau vers ASP.net 4.0 à partir de la version 3.5

Je peux créer de nouveaux utilisateurs. Ils apparaissent dans la base de données. Mais je ne peux pas me connecter en utilisant les nouvelles informations d'identification de l'utilisateur (oui, IsApproved est 1).

Un indice est que les mots de passe hachés dans la base de données est plus pour les utilisateurs créés à l'aide de la version 4.0 asp.net, par exemple 3lwRden4e4Cm + cWVY/spa8oC3XGiKyQ2UWs5fxQ5l7g =, et les anciens .Net 3.5 sont tous ceux qui aiment + JQf1EcttK + 3fZiFpbBANKVa92c =.

Je peux toujours me connecter lorsque je me connecte à la même base de données avec la version .net 3.5, mais seulement aux anciens comptes, pas aux nouveaux créés avec la version .net 4.0. La version 4.0 ne peut pas se connecter à des comptes.

J'ai essayé laisser tomber la base de données tout sur mon système de test, les tables d'adhésion sont alors automatiquement créés sur la première course, mais il est toujours le même, peut créer des utilisateurs, mais ne peut pas se connecter.

Répondre

13

Voir: HERE

L'algorithme de hachage par défaut a changé pour .NET 4.0. L'algorithme de hachage par défaut est maintenant HMACSHA256. Les versions antérieures d'ASP.NET utilisaient l'ancien algorithme HMACSHA1.

Pour configurer une application Web ASP.NET 4 d'utiliser l'algorithme de HMACSHA1 plus, ajoutez le paramètre suivant à la section system.web du fichier web.config:

<machineKey validation="SHA1"/> 
+0

Vous monsieur le jour sauvé pour moi . +1 –

2

J'ai exactement le même problème. J'ai mon application Web dans les versions 3.5 et 4.0 et seuls les anciens comptes fonctionnent sur l'instance 3.5.

En espérant que quelqu'un ait une réponse!

MISE À JOUR:

J'ai changé le passwordFormat pour effacer et je suis en mesure de créer un nouvel utilisateur et connectez-vous avec la 4.0 application. On dirait que quelque chose a changé avec la façon dont les mots de passe sont hachés.

MISE À JOUR 2:

j'ai pu faire l'un des « vieux » représente le travail. Avec la modification ci-dessus à passwordFormat, j'ai changé la colonne PasswordFormat dans my_aspnet_membership à 0 et définir le mot de passe manuellement dans la même table. Bien que ce soit compliqué et désordonné, il laisse le compte l'obtenir. Je vais essayer de réinitialiser le mot de passe et voir si cela résout les comptes cassés.