Szybkie pytanie.
Dorabiam funkcjonalność do zmiany adresu email ( u mnie to jednocześnie UserName )
Zrobiłem tak:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult ManageChangeEmail(ChangeUserEmailViewModel model)
{
var getUserEmail = User.Identity.GetUserName();
var context = new ApplicationDbContext();
if (ModelState.IsValid)
{
ApplicationUser thisUser = context.Users.FirstOrDefault(n=>n.Email == getUserEmail);
if (getUserEmail == thisUser.Email)
{
var newEmail = model.NewEmail;
var newEmailConfirmed = model.ConfirmNewEmail;
if (newEmail == newEmailConfirmed)
{
thisUser.Email = newEmail;
thisUser.UserName = newEmail;
IdentityResult result = UserManager.Update(thisUser);
context.SaveChanges();
if (result.Succeeded)
{
return RedirectToAction("LogOff", "Account");
}
else
{
AddErrors(result);
}
}
}
}
return RedirectToAction("Manage", "Account");
}
Przesyłam sobie do okacji moj ViewModel. Następnie przepisuje wartości i chce zrobić Update(). Niby wszystko ok ale nic się nie aktualizuje w bazie.
Po zmianie email ( username ) chce wylogować użytkownika.
Co tu robie źle? :)