FindByUsernameAndPassword() public method

public FindByUsernameAndPassword ( string username, string password ) : User
username string
password string
return User
Ejemplo n.º 1
0
        public virtual ActionResult ChangeEmail(ChangeEmailRequestModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            User user = UserService.FindByUsernameAndPassword(Identity.Name, model.Password);

            if (user == null)
            {
                ModelState.AddModelError("Password", Strings.CurrentPasswordIncorrect);
                return(View(model));
            }

            if (String.Equals(model.NewEmail, user.LastSavedEmailAddress, StringComparison.OrdinalIgnoreCase))
            {
                // email address unchanged - accept
                return(RedirectToAction(MVC.Users.Edit()));
            }

            try
            {
                UserService.ChangeEmailAddress(user, model.NewEmail);
            }
            catch (EntityException e)
            {
                ModelState.AddModelError("NewEmail", e.Message);
                return(View(model));
            }

            if (user.Confirmed)
            {
                var confirmationUrl = Url.ConfirmationUrl(
                    MVC.Users.Confirm(), user.Username, user.EmailConfirmationToken, protocol: Request.Url.Scheme);
                MessageService.SendEmailChangeConfirmationNotice(new MailAddress(user.UnconfirmedEmailAddress, user.Username), confirmationUrl);

                TempData["Message"] =
                    "Your email address has been changed! We sent a confirmation email to verify your new email. When you confirm the new email address, it will take effect and we will forget the old one.";
            }
            else
            {
                TempData["Message"] = "Your new email address was saved!";
            }

            return(RedirectToAction(MVC.Users.Edit()));
        }