我目前有以下登录脚本:
[HttpPost]
public ActionResult LogOn(LogOnModel model)
{
if (ModelState.IsValid)
{
if (Membership.ValidateUser(model.UserName, model.Password))
{
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
Guid MyUserId = (Guid)Membership.GetUser().ProviderUserKey;
System.Web.HttpContext.Current.Session[MyUserId.ToString()] = profileRepository.GetFullProfile(MyUserId);
return Json(true);
}
else
{
return Json("The user name or password provided is incorrect.");
}
}else
return Json("The user name or password provided is incorrect.");
}
我得到一个错误的Membership.GetUser()
说法object reference
。我对此进行了研究,发现这是因为只有我的下一个 http 请求将被验证,那么当用户登录时将用户数据保存到会话中的最佳方法是什么?在用户的会话到期并将他踢出之前,是否会确保在会话中,或者是否会出现用户在没有会话数据集的情况下登录的情况?如果生病了,也需要一些东西来处理它。