コード例 #1
0
        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());
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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());
        }