Я пытаюсь обновить комментарии для пользователя, но когда я попытаюсь использовать следующий код:
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
Возможно, в базе данных есть Duplicate Email Address
. если вы установите requiresUniqueEmail
ложь в Membership Connection String
, true
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" />
Это оказалось вызвано тем, что в моей таблице aspnet_Membership была другая запись, у которой был тот же адрес электронной почты, что и запись, которую я пытался обновить. Это тестовая база данных, поэтому я предполагаю, что я должен добавить ее вручную или что-то еще, потому что в текущей системе невозможно создать дубликаты.
По какой-то причине у них есть довольно вводящее в заблуждение сообщение об ошибке, в котором говорится, что с адресом электронной почты что-то не так, когда проблема связана с дублирующимися сообщениями электронной почты.
Надеюсь, это может помочь кому-то в будущем.