Anstatt Benutzer zu zwingen, sich an einen Benutzernamen zu erinnern, möchte ich lieber ihre E-Mail-Adresse eingeben und das Passwort zurücksetzen und an sie senden lassen.PasswordRecovery mit E-Mail anstelle von UserName
Ich verwende ASP.Net PasswordRecovery-Steuerelement unter dem Mitgliedschaftsanbieter.
Momentan funktioniert das System gut, es setzt das Passwort zurück und sendet es an den Benutzer. Ich finde jedoch, dass viele Benutzer ihren Benutzernamen vergessen. Natürlich schalte ich den Benutzernamen in die E-Mail ein.
Idealerweise würde ich mit Benutzernamen vollständig verzichtet werden kann, aber leider schon Ich habe Benutzer mit Benutzernamen, die keine Adressen eine E-Mail sind.
Also, wie kann ich einfach meine Passwordkontrolle ändern für die Benutzer-E-Mail-Adresse zu stellen und das Zurücksetzen des Passworts, und Benutzername an diese Adresse schicken?
Vielen Dank. So
Ich versuchte UserNameLabelText = Hinzufügen von "E-Mail:" OnVerifyingUser = "PasswordRecovery1_VerifyingUser" der asp: Password und protected void PasswordRecovery1_VerifyingUser (object sender, MailMessageEventArgs e) { PasswordRecovery1.UserName = System.Web.Security. Membership.GetUserNameByEmail (PasswordRecovery1.UserName); } in der zugehörigen .cs-Datei, aber das Steuerelement failes zu kompilieren mit einem Fehler CS0123: Keine Überladung für 'PasswordRecovery1_VerifyingUser' entspricht Delegat 'System.Web.UI.WebControls.LoginCancelEventHandler', die mich verliert. – Degan
PasswordRecovery1_VerifyingUser sollte einen zweiten Parameter des Typs System.Web.UI.WebControls.LoginCancelEventArgs haben: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.passwordrecovery.onverifyinguser.aspx nicht von Geben Sie MailMessageEventArgs ein. Sie sollten auch überprüfen, ob der Benutzername tatsächlich mit einem E-Mail-Adressmuster übereinstimmt. Andernfalls gibt GetUsernameByEmail null zurück und löscht das Feld UserName. –
Danke, Zhaph, ich hatte wirklich keine Ahnung, dass ich den falschen Parametertyp gesendet habe. Es funktioniert jetzt. – Degan