如何在Asp.NET MVC 5中将自定义用户保存到用户身份

时间:2014-03-26 17:11:07

标签: c# asp.net-mvc entity-framework

我将用户保存在我的数据库中,并且我使用Entity Framework 6来检索存储库中的用户。我正在使用MVC 5.

存储登录用户信息的最佳方式是什么,例如UserID,Email等。

使用会话变量或User.Identity

[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginViewModel model)
{
    if (ModelState.IsValid)
    {

        var user = _uow.UserRepository.FindLogin(model.Email, model.Password);
        if (user != null)
        {
            _uow.UserRepository.UpdateLastLoginDate(user);                    
            _uow.SaveChanges();

            return RedirectToAction("Index", "Administrator");

        }
        else
        {
            ModelState.AddModelError("", "Invalid Email Address or Password.");
        }
    }

    return View(model);
}

1 个答案:

答案 0 :(得分:1)

您不会在会话中存储此信息。首先,您需要使用此处所述的AuthenticationManager.SignIn方法 - http://www.asp.net/identity/overview/getting-started/introduction-to-aspnet-identity。然后,您可以使用.GetUserId()扩展方法从Identity对象中提取用户ID,如下所示:

User.Identity.GetUserId()

然后,您可以使用此ID从UserManager请求用户信息。如果您只需要UserName,您可以使用GetUserName扩展方法并直接从Identity对象中提取它。