public async Task <ActionResult> ForgotPassword([Bind(Include = "UserIdentity")] ForgotPasswordViewModel model) { if (ModelState.IsValid) { try { var userService = ServiceFactory.GetUserService(); string userEmail = userService.GetEmailByUserIdentity(model.UserIdentity); int id = userService.GetIdOflogin(userEmail); string newPassword = PasswordEncryptor.RendomPassword(); if (userService.UpdatePassword(id, newPassword)) { string subject = "Ваш пароль был изменен"; string body = "Новый пароль: " + newPassword; if (await MailDispatch.SendingMailAsync(userEmail, subject, body).ConfigureAwait(false)) { return(this.RedirectToAction("ForgotPasswordSuccess")); } } } catch (UserValidationException ex) { ModelState.AddModelError(ex.UserProperty, ex.Message); return(View()); } } else { ModelState.AddModelError(string.Empty, "Ошибка восстановления пароля"); return(View()); } return(View()); }
public async Task <ActionResult> Register([Bind(Include = @"Login, Password, ConfirmPassword, Email")] UserViewModel user) { bool result = false; if (ModelState.IsValid) { var userDB = UserMapper.GetUserModel(user); var userService = ServiceFactory.GetUserService(); result = userService.RegisterUser(userDB); if (!result) { ModelState.AddModelError(string.Empty, "Ошибка регистрации"); return(View(user)); } string subject = "Подтверждение регистрации"; string body = string.Format( "Для завершения регистрации перейдите по ссылке:" + "<a href=\"{0}\" title=\"Подтвердить регистрацию\">{0}</a>", Url.Action("ConfirmEmail", "Account", new { Token = userDB.Id, Email = userDB.Email }, Request.Url.Scheme)); if (await MailDispatch.SendingMailAsync(userDB.Email, subject, body).ConfigureAwait(false)) { return(RedirectToAction("Confirm", "Account", new { Email = userDB.Email })); } else { ModelState.AddModelError(string.Empty, "Ошибка отправки сообщения"); } } else { ModelState.AddModelError(string.Empty, "Произошла ошибка при регистрации"); } using (var countries = RepositoryFactory.GetCountryRepository()) { ViewBag.Countries = new SelectList(countries.GetAll(), "Id", "Name"); } return(View(user)); }
public ActionResult ChangeLogin([Bind(Include = @"Login")] ChangeLoginViewModel user) { if (ModelState.IsValid) { var userService = ServiceFactory.GetUserService(); if (userService.UpdateLogin(User.Identity.Name, user.Login)) { string subject = "Ваш Логин был изменен"; string body = "Новый логин: " + user.Login; string usetEmail = userService.GetEmailByUserIdentity(user.Login); if (!MailDispatch.SendingMail(usetEmail, subject, body)) { ModelState.AddModelError(string.Empty, "Ошибка отправки"); return(View()); } HttpContext.Session.Abandon(); _authModule.LogOut(); return(RedirectToAction("Login", "Account", new { area = "User" })); } } return(View()); }