我已經添加了一個布爾值「ChangedPassword」到我的數據庫。我必須強制用戶在首次登錄時更改密碼。不會保存編輯
他們更改密碼後,布爾值必須更改爲true。它正在工作,但它不會保存它。
我的代碼:
// POST: /Manage/ChangePassword
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> ChangePassword(ChangePasswordViewModel model)
{
if (!ModelState.IsValid)
{
return View(model);
}
var result = await UserManager.ChangePasswordAsync(User.Identity.GetUserId(), model.OldPassword, model.NewPassword);
if (result.Succeeded)
{
var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());
if (user != null)
{
await SignInAsync(user, isPersistent: false);
}
SidewindContext db = new SidewindContext();
if (user.ChangedPassword == false)
{
user.ChangedPassword = true;
}
db.SaveChanges();
return RedirectToAction("Index", new { Message = ManageMessageId.ChangePasswordSuccess });
}
AddErrors(result);
return View(model);
}
我不知道如果我需要db.SaveChanges但它不使用或不工作。 有什麼想法?讓我知道。
'user'不在同一上下文中'db'。 – 2015-03-02 13:17:10
要麼使用'SidewindContext'本身,而不使用'UserManager'並將'true'指定給'ChangedPassword',或者在用戶管理器中創建一個將'true'指定給'ChangedPassword'的方法,該方法使用上下文'UserManager'正在使用 – Amila 2015-03-02 14:22:55