Esempio n. 1
0
        public async Task <IActionResult> SetPassword()
        {
            var user = await this.userManager.GetUserAsync(this.User);

            if (user == null)
            {
                return(this.NotFound());
            }

            if (await this.userManager.HasPasswordAsync(user))
            {
                return(this.RedirectToAction("ChangePassword"));
            }

            var model = new UserSetPasswordBindingModel
            {
                Email = user.Email
            };

            return(this.View(model));
        }
Esempio n. 2
0
        public async Task <IActionResult> SetPassword(UserSetPasswordBindingModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.RedirectToAction("SetPassword"));
            }

            var user = await this.userManager.GetUserAsync(this.User);

            if (user == null)
            {
                return(this.NotFound());
            }

            if (await this.userManager.HasPasswordAsync(user))
            {
                return(this.RedirectToAction("ChangePassword"));
            }

            var changePasswordResult = await this.userManager.AddPasswordAsync(user, model.NewPassword);

            if (!changePasswordResult.Succeeded)
            {
                foreach (var error in changePasswordResult.Errors)
                {
                    this.ModelState.AddModelError(string.Empty, error.Description);
                }

                model.Email = user.Email;

                return(this.View(model));
            }

            this.Success(NotificationMessages.PasswordSet);

            return(this.LocalRedirect("/"));
        }