Ich habe hier ein Szenario, wobei, wenn ein Benutzer ein Passwort zurücksetzen möchte, das System ein temporäres zufällig generiertes Passwort per E-Mail an den Benutzer senden muss. Ich habe versucht, das temporäre Passwort in einer neuen Spalte in der Datenbank zu speichern, aber ich bin mir nicht sicher, ob dieser Ansatz gut funktioniert. Einige Leute empfehlen token
wie unten:C# ASP.NET Identität
string code = await UserManager.GeneratePasswordResetTokenAsync(user.Id);
Ich bin aber wirklich neu zu ASP.NET
und ich bin nicht vertraut mit token
. Wie kann ich das temporäre token
mit dem token
in der Datenbank vergleichen?
Ein andere Methode, die ich dies zu implementieren gefunden ist eine Membership.GeneratePassword
Funktion zu haben, die eine zufällige Zeichenfolge generiert:
model.temppwd = Membership.GeneratePassword(10, 1);
Kann mir jemand eine ideale Möglichkeit bietet diese Funktionalität mit einigem Beispiel zu implementieren? Vielen Dank!
http://www.asp.net/identity/overview/features-api/account-confirmation-and-password-recovery-with-aspnet-identity –
Tatsächlich enthält die ASP.NET-Webanwendung-Projektvorlage ein vollständige Implementierung –
@Joe Sie müssen nichts speichern. Das Token ist * kein * temporäres Passwort und * Sie * muss es nirgendwo speichern. Dies wird von ASP.NET Identity genauso gehandhabt wie der Benutzer-/Passwortspeicher. In der ASP.NET MVC-Projektvorlage sehen Sie, dass AccountController über eine ResetPassword-Methode verfügt, die 'var result = await verwendet. UserManager.ResetPasswordAsync (user.Id, model.Code, model.Password)' wo 'model.Code' steht Token eingegeben vom Benutzer entweder direkt oder über einen Link –