ユーザーにUserNameを覚えさせるのではなく、電子メールアドレスを入力してパスワードをリセットして送信するようにします。UserNameの代わりに電子メールを使用するPasswordRecovery
私は、ASP .Net PasswordRecoveryコントロールをメンバーシッププロバイダで使用しています。
システムは正常に動作し、パスワードをリセットしてユーザーに送信します。しかし、私は多くのユーザーが自分のUserNameを忘れていることがわかります。明らかに、私はそれらに電子メールにUserNameを含めます。
理想的には、私はユーザー名を完全に省いていますが、残念ながら私はUserNamesのユーザーには電子メールアドレスではありません。
私は簡単にパスワードリカバリコントロールを変更してユーザーの電子メールアドレスを尋ね、リセットパスワードとUserNameをそのアドレスに送信できますか?
ありがとう。
IはUserNameLabelText = "電子メール:" を付加しようとしたASPに= "PasswordRecovery1_VerifyingUser" OnVerifyingUser:PasswordRecovery、ボイドPasswordRecovery1_VerifyingUser(オブジェクト送信者、MailMessageEventArgs e)を保護 {PasswordRecovery1.UserName = System.Web.Securityを。 Membership.GetUserNameByEmail(PasswordRecovery1.UserName); }が関連付けられた.csファイル内にありますが、コントロールがエラーでコンパイルに失敗します。CS0123: 'PasswordRecovery1_VerifyingUser'のオーバーロードが、私を失う 'System.Web.UI.WebControls.LoginCancelEventHandler'デリゲートと一致しません。 – Degan
PasswordRecovery1_VerifyingUserには、System.Web.UI.WebControls.LoginCancelEventArgsタイプの2番目のパラメータが必要です。http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.passwordrecovery.onverifyinguser.aspx MailMessageEventArgsと入力します。また、ユーザー名が実際に電子メールアドレスパターンと一致するかどうかを確認する必要があります。そうしないと、GetUsernameByEmailはnullを返し、UserNameフィールドを空にします。 –
ありがとう、Zhaph、間違ったパラメータタイプを送信しているとは思っていませんでした。それは今働いている。 – Degan