2014-09-30 1 views
1

Я пытаюсь обновить Комментарии для пользователя, но когда я пытаюсь с помощью кода ниже:Получение недопустимой ошибки электронной почты при попытке обновить пользователя?

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

Он бросает ошибку:

The E-mail supplied is invalid.

Я проверил электронную почту прямо перед тем, как позвонить UpdateUser и все в порядке. Кто-нибудь может понять, почему это происходит?

UPDATE:

Стек след -

[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

Просьба предоставить полную трассировку стека ошибки, поскольку это может добавить дополнительную информацию, которую только электронная почта инвалид. –

+0

@NathanTregillus, я проверил электронную почту прямо перед тем, как позвонить в «UpdateUser», и все в порядке. –

ответ

0

Это, как оказалось, был вызван там быть другой записью в моем aspnet_Membership таблице, в которой один и тот же адрес электронной почты в качестве записи я пытался обновить. Это тестовая база данных, поэтому я предполагаю, что я должен добавить ее вручную или что-то еще, потому что в текущей системе невозможно создать дубликаты.

По какой-то причине у них есть довольно вводящее в заблуждение сообщение об ошибке, в котором говорится, что с адресом электронной почты что-то не так, когда проблема связана с дублирующимися сообщениями электронной почты.

Надеюсь, это может помочь кому-то в будущем.

1

В базе данных, возможно, есть 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" /> 
+0

Да, это вызвано дублированием электронной почты. Добавление requireUniqueEmail = "false" в строке подключения в web.config решило проблему. – Halim

 Смежные вопросы

  • Нет связанных вопросов^_^