Ich migriere Benutzer von einem älteren Benutzerspeicher zu ASP.NET Identity 2.0 in meiner ASP.NET 5.0-Webanwendung. Ich habe eine Möglichkeit, Legacy-Hashes zu überprüfen, aber ich möchte sie bei der Anmeldung in ASP.NET Identity 2.0-Hashes aktualisieren.ASP.NET Identity 2.0: Wie rehash password
Ich habe eine benutzerdefinierte IPasswordHasher
erstellt die in der Lage ist zu erkennen, und Legacy-Hashes zu überprüfen, und das Rück PasswordVerificationResult.SuccessRehashNeeded
zu gegebener Zeit. (Wenn festgestellt wird, dass der Hash nicht veraltet ist, wird die integrierte ASP.NET-Identitätshashverifizierung durchsucht.)
Die Rückgabe von PasswordVerificationResult.SuccessRehashNeeded
scheint jedoch nicht dazu zu führen, dass ASP.NET Identity tatsächlich etwas bewirkt . Gibt es irgendwo eine Konfigurationsoption, die dazu führt, dass das System die Passwörter erneut hasht, wenn IPasswordHasher dieses Ergebnis zurückgibt?
Wenn die Antwort Nein zu den oben genannten ist, dann ist es empfehlenswert, dass ich einfach erneut Hash-und aktualisieren Sie den Benutzer manuell? Wo würde ich das machen? Ich sehe keinen Ort auf der Controller-Ebene, wo ich das PasswordVerificationResult sehen kann.
Ich bin neu in ASP.NET Identity, also bin ich sicher, dass ich etwas einfaches vermisse. Vielen Dank im Voraus für Hinweise.
Du solltest 'awarme store.UpdateAsync (user);' nach dem Setzen des neuen Passwort-Hashs hinzufügen, um die aktualisierten Informationen tatsächlich in die Datenbank zu schreiben. Es sollte innerhalb desselben 'if' gemacht werden, also denken Sie daran, den aktualisierten Code in Klammern zu setzen. (Dies ist übrigens ein guter Grund, immer Klammern um Block-Anweisungen zu haben, selbst wenn es anfangs nur eine Anweisung im Block gibt.) – Nemo1024