j'ai une application existante dans la production qui utilise SqlMembershipProvider et dispose d'une clé machine spécifiée:Hashage ne fonctionne plus en .Net 4.0 malgré MSDN solutions de contournement
<machineKey validationKey="..." decryptionKey="..."
validation="SHA1" decryption="AES"/>
Il fonctionne sous .Net 2.0 AppPool actuellement. Je suis en train d'écrire une nouvelle application qui doit utiliser la base de données existante, dont j'ai une sauvegarde de. J'essaie de faire fonctionner SqlMembershipProvider avec (mais ce n'est pas le cas) mais je ne peux pas obtenir un nom d'utilisateur/mot de passe connu. Ce compte fonctionne dans prod, et le mot de passe hash et sel sont les mêmes sur les deux bases de données (prod et mine). Cependant, au moment où le SqlMembershipProvider compare le mot de passe de la base de données avec le mot de passe haché entré, ils ne sont pas identiques.
Cet article suggère la rupture des changements avec l'algorithme de hachage par défaut dans ASP.Net en .Net 4.0: http://www.asp.net/learn/whitepapers/aspnet4/breaking-changes
Cependant je spécifie déjà une clé de la machine comme l'a suggéré. En outre, j'ai supprimé les composants .Net 4.0 et l'ai ramené à 3.5 (qui est CLR 2) et le hachage du mot de passe entré est toujours le même. En outre, j'ai essayé de redéployer cette nouvelle application temporaire sur la même production de serveur et elle ne parvient toujours pas à se connecter (bien que je ne puisse pas vérifier si elle échoue en raison d'une incompatibilité de hash de mot de passe).
Que puis-je essayer ici?