2017-05-20 2 views
3

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.

Antwort

3

Es scheint, dass der Mechanismus zum erneuten Aufrüsten im integrierten Benutzermanager nicht implementiert ist. Aber hoffentlich könntest du das leicht umsetzen. beachte das:

+0

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

Verwandte Themen