public IActionResult ChangeMyPassword(PasswordChangeModel model) { if (ModelState.IsValid) { AppUser user = CurrentUser; if (user != null) { bool exist = Usermanager.CheckPasswordAsync(user, model.PasswordOld).Result; if (exist) { IdentityResult result = Usermanager.ChangePasswordAsync(user, model.PasswordOld, model.PasswordNew ).Result; if (result.Succeeded) { Usermanager.UpdateSecurityStampAsync(user); SignInManager.SignOutAsync(); SignInManager.PasswordSignInAsync(user, model.PasswordNew, false, false); ViewBag.success = true; } else { AddErrors(result); } } } } return(View(model)); }
public async Task <IActionResult> Login(LoginViewModel model, string returnUrl) { model.ExternalLogins = (await Signinmanager.GetExternalAuthenticationSchemesAsync()).ToList(); if (ModelState.IsValid) { var user = await Usermanager.FindByEmailAsync(model.Email); if (user != null && !user.EmailConfirmed && (await Usermanager.CheckPasswordAsync(user, model.Password))) { ModelState.AddModelError(string.Empty, "Email not confirmed yet"); return(View(model)); } var result = await Signinmanager.PasswordSignInAsync( user, model.Password, model.RememberMe, false); if (result.Succeeded) { if (!String.IsNullOrEmpty(returnUrl) && Url.IsLocalUrl(returnUrl)) { //LocalRedirect(returnUrl); return(Redirect(returnUrl)); } else { if (User.IsInRole("Admin") || User.IsInRole("Super Admin") || User.IsInRole("Employee")) { return(RedirectToAction("Admin", "Home")); } else { return(RedirectToAction("index", "Home")); } } } ModelState.AddModelError(string.Empty, "Invalid Login Attempt"); } return(View(model)); }