我正在使用默认的 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/