Как получить электронное письмо от приходящего кода для сброса пароля

#asp.net #asp.net-mvc #email #reset-password

#asp.net #asp.net-mvc #Адрес электронной почты #сброс пароля

Вопрос:

Я использую ASP.NET MVC и реализовал все функции от регистрации до входа в систему, а также забыл пароль и сбросил пароль.

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

Итак, где я должен проверить этот код в базе данных и получить адрес электронной почты этого пользователя, чтобы я мог установить его в модели просмотра и передать, чтобы он отображался!

Сбросить пароль:

 [AllowAnonymous]
public ActionResult ResetPassword(string code)
{
      return code == null ? View("Error") : View();
}
  

Здесь я хочу получить электронное письмо пользователя, который пытается сбросить пароль.

Пожалуйста, кто-нибудь, подскажите мне, как я могу это сделать!

Комментарии:

1. Ваш метод помечен как анонимный. У анонимного пользователя может даже не быть электронной почты. Что на самом деле делает этот метод и откуда он вызывается?

2. @StephenMuecke Я объявил его как AllowAnonymous, потому что пользователь, который приходит для сброса пароля, больше не входит в систему, поэтому пользователь не может получить доступ к этой функции, если мы не дадим разрешение как AllowAnonymous. В любом случае, спасибо за повтор, у меня есть решение.

3. Да, точно — поэтому пользователь должен предоставить свой адрес электронной почты или что-то еще, чтобы идентифицировать их

4. @StephenMuecke Я ежедневно вижу ваши сообщения и ответы в SO .. You are rocking Asp.net в SO..

5. @StephenMuecke Я не могу удалить AllowAnonymous, потому что, если я удалю это, это перенаправит пользователя на страницу входа, и это совершенно неправильно, поэтому, если пользователь передаст электронное письмо, эта функция не позволит перейти без входа, если мы не предоставим его как AllowAnonymous, потому что я авторизовал свой контроллер, поэтому для меня обязательно установить его как AllowAnonymous .

Ответ №1:

Упс, я допустил ошибку при получении отсутствующего параметра.

Мне просто нужно получить идентификатор пользователя, и моя проблема решена.

Вот код, который я реализовал:

 [AllowAnonymous]
        public ActionResult ResetPassword(string userId ,string code)
        {
            if (code == null)
            {
                return View("Error");
            }
            else {
                ResetPasswordViewModel model = new ResetPasswordViewModel();
                model.Email = UserManager.GetEmail(userId);
                return View(model);
            }
        }
  

Итак, в моей viewmodel я установил свой адрес электронной почты, чтобы он автоматически отображал сохраненную информацию в поле зрения.

Ответ №2:

Вы должны указать имя текстового поля как «код» в вашем представлении.

Если вы используете обычный HTML, то используйте ниже.

 <input type="text" name="code" class="yourclass" />
  

Затем используйте HTML Helper ниже.

 @Html.TextBox("code", new {@class="yourclass" })
  

Комментарии:

1. Я думаю, вы неправильно поняли мой вопрос, дорогой! Мой вопрос заключается в том, чтобы отобразить электронное письмо с помощью кода, т. Е. Проверить из базы данных и получить электронное письмо и отобразить, а не код.

2. @padhiyar хорошо, у тебя есть свой BL. Ооо, ты получил ответ.. Приветствия