尝试更新用户时出现无效的电子邮件错误?

时间:2014-09-30 20:46:19

标签: c# asp.net membership-provider

我正在尝试更新用户的评论,但是当我尝试使用以下代码时:

MembershipUser User = Membership.GetUser(UserName);
User.Comment = "Whatever...";
Membership.UpdateUser(User);

它抛出错误:

  

提供的电子邮件无效。

我在致电UpdateUser之前检查了电子邮件,这很好。谁能明白为什么会这样呢?

更新

堆栈追踪 -

[ProviderException: The E-mail supplied is invalid.]
   System.Web.Security.SqlMembershipProvider.UpdateUser(MembershipUser user) +1583
   System.Web.Security.MembershipUser.Update() +111
   Security_Login.btnSubmit_Click(Object sender, EventArgs e) in c:\inetpub\V1\VerbalInk.Web\Security\Login.aspx.cs:40
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +115
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +140
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +29
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2981

2 个答案:

答案 0 :(得分:2)

数据库中可能有Duplicate Email Address。如果将requiresUniqueEmail设置为false 在Membership Connection String中,将其设置为true

<add name="AspNetSqlMembershipProvider" applicationName="blah" 
connectionStringName="balh" enablePasswordReset="true" enablePasswordRetrieval="false"
maxInvalidPasswordAttempts="5" minRequiredNonalphanumericCharacters="0" 
minRequiredPasswordLength="5" passwordAttemptWindow="15" passwordFormat="Hashed"    
requiresQuestionAndAnswer="false" **requiresUniqueEmail="true"** 
type="System.Web.Security.SqlMembershipProvider" />

答案 1 :(得分:0)

原来这是由于我的aspnet_Membership表中有另一条记录与我尝试更新的记录具有相同的电子邮件地址。这是一个测试数据库,所以我猜我必须手动添加它或者不久之后添加它,因为使用当前系统不可能创建重复项。

出于某种原因,他们有一个非常误导性的错误消息,表明电子邮件地址有问题,实际上,问题与重复的电子邮件有关。

希望这可以帮助将来的某个人。