Разрешение RequireUniqueEmail = false дает ошибку в методе ChangePasswordAsync - PullRequest
0 голосов
/ 26 октября 2019

В моем коде c # я разрешил принимать пользователей с одинаковыми электронными письмами с приведенным ниже кодом.

UserValidator = new UserValidator<ApplicationUser>(this)
    {
        AllowOnlyAlphanumericUserNames = false,
        RequireUniqueEmail = false
    };

Однако это работает абсолютно нормально, когда пользователь идет вперед и меняет свой пароль, который он даетему сообщают, что сообщение «zyz@domain.com» уже занято ». Если он не делится своей электронной почтой с другими пользователями, то функциональность работает нормально. Ниже приведен код для изменения пароля пользователя.

IdentityResult result = await UserManager.ChangePasswordAsync(User.Identity.GetUserId(), model.OldPassword,
                model.NewPassword);

Где мне внести изменения, чтобы это работало ??

1 Ответ

0 голосов
/ 26 октября 2019

Вы рассматриваете адрес электронной почты как имя пользователя? Если да, то дайте пользователям уникальное имя пользователя, но разрешите один и тот же адрес электронной почты.

Также проверьте в своем web.config наличие тега RequireUniqueEmail

    <membership defaultProvider="MySqlMembershipProvider">
      <providers>
        <clear />
        <add connectionStringName="SimpleConnection" applicationName="abc" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="15" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression="" name="MySqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
      </providers>
    </membership>

Также просмотритеследующие связанные темы (это полезно для всех, если вы ищете предыдущие вопросы):

Идентификация AspNet RequireUniqueEmail = ложное исключение исключения на CreateAsync

RequireUniqueEmail = false не работает MVC5

...