在使用默认MVC成员资格提供程序注册后,用户在修改电子邮件地址时如何防止重复的电子邮件地址?

时间:2012-04-19 16:38:06

标签: asp.net-mvc asp.net-membership membership-provider

我正在使用默认的ASP.NET MVC成员资格提供程序,我希望允许用户在创建帐户后修改其电子邮件。我不希望用户能够使用重复的电子邮件。

如何允许用户修改其电子邮件并检查该电子邮件是否未在数据库中的其他位置使用?在使用默认的成员资格提供程序时,我不确定进行此类检查的最佳方法。

注意 - 我知道当用户尝试注册他们的电子邮件地址时,会员提供商本身会执行此检查,我不知道如何在以后执行此检查(由于noobness)。

注意2 - 我只知道这种访问用户电子邮件的方法,这是访问它的正确方法吗?

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

1 个答案:

答案 0 :(得分:9)

您可以通过该电子邮件搜索现有用户名:

String userName = MembershipProvider.GetUserNameByEmail(email)

如果未找到匹配项,userName将为空。有关详细信息,请参阅here

另外,如果您的MembershipProvider有RequiresUniqueEmail = true,那么应该已经为您执行此检查 - 按照this页面。