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

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

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

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

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

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

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

最佳答案

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

String userName = MembershipProvider.GetUserNameByEmail(email)

如果没有找到匹配项,userName 将为空。参见 here有关这方面的更多信息。

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

关于asp.net-mvc - 当用户在使用默认的 MVC 成员资格提供程序注册后修改他们的电子邮件地址时,如何防止重复的电子邮件地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10232706/

相关文章:

javascript - 为什么单击的表格单元格内的按钮未定义

asp.net - 为什么CreateUserWizard Control会自动添加ASPNETDB.MDF数据库?

asp.net-mvc - Asp.Net MVC - Linq 排序问题

c# - 路径 '/' 的 Controller 未找到或未实现 IController。在 nopCommerce 中

asp.net - 将 asp.net 用户的配置文件信息存储在单独的列而不是 1 个长列中?

c# - 如何在 C# 中进行异步调用以同步运行

asp.net-mvc-3 - ASP.NET 成员(member)资格 - 登录在本地有效,但在 Azure 上失败

ASP.NET 中的 Membership、MembershipProvider 和 MembershipUser 关系?

c# - 将 Entity Framework 7 添加到 MVC 5 项目

asp.net - AppHarbor 上的 MongoDB 成员(member)提供程序