2

デフォルトの ASP.NET MVC メンバーシップ プロバイダーを使用しており、ユーザーがアカウントを作成した後に電子メールを変更できるようにしたいと考えています。ユーザーが重複した電子メールを使用できるようにしたくありません。

ユーザーが電子メールを変更できるようにし、その電子メールがデータベース内の他の場所で使用されていないことを確認するにはどうすればよいですか? デフォルトのメンバーシップ プロバイダーを使用する場合に、この種のチェックを行う最善の方法がわかりません。

注 - ユーザーがメールアドレスを登録しようとすると、メンバーシッププロバイダー自体がこのチェックを実行することは知っていますが、後でこのチェックを実行する方法はわかりません (初心者のため)。

注 2 - ユーザーの電子メールにアクセスするこの方法しか知りませんが、これは適切な方法でアクセスできますか?

MembershipUser useremail = Membership.GetUser(User.Identity.Name);
ViewBag.Email = useremail.Email;
4

1 に答える 1

10

そのメールで既存のユーザー名を検索できます。

String userName = MembershipProvider.GetUserNameByEmail(email)

一致するものが見つからない場合は、userNamenull になります。詳細については、こちらを参照してください。

また、MembershipProvider が持っている場合は、このページRequiresUniqueEmail = trueに従って、このチェックが既に実行されているはずです。

于 2012-04-19T16:50:43.443 に答える