Asp.net MVC 3 Membership.UpdateUser似乎什么都不做

时间:2015-01-19 15:48:38

标签: asp.net asp.net-mvc-3 asp.net-membership

我在MVC网站中构建了一个模块,允许管理员创建,修改和删除网站用户。但是,我似乎无法通过以下代码更新用户信息:

[HttpPost]
public ActionResult Edit(User user)
{
  if (ModelState.IsValid)
  {
    try
    {
      //CHANGE EXISTING USER
      MembershipUser siteUser = Membership.GetUser(user.Username);
      siteUser.Email = user.Email;
      siteUser.IsApproved = true;
      siteUser.Comment = "User Update on " + DateTime.UtcNow;
      siteUser.UnlockUser();
      Membership.UpdateUser(siteUser);
      if (!String.IsNullOrEmpty(user.Password))
      {
        siteUser.ChangePassword(siteUser.GetPassword(), user.Password);
      }
      unitOfWork.UsersRepository.Update(user);
      unitOfWork.Save();
      return RedirectToAction("Index");
    }
    catch (Exception err)
    {
      // CODE REMOVED FOR BREVITY
    }
  }
  return View(user);
}

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

进一步测试后,似乎有一行导致用户信息重置。

siteUser.UnlockUser();

在通过Membership.UpdateUser()保存用户更改之前无法调用此行,否则更改将丢失。希望这可以节省一些人的头脑。