所以,这就是这个想法。我有一个会话缓存类,用于获取和设置会话变量,这是简单的用户信息。因此,我想在用户成功登录后将值设置为会话,并使用此类在整个应用程序中获取会话值。但不知何故,我无法将值设置为会话缓存类中的会话变量。
public class SessionCache
{
public static string SessionID
{
get
{
return HttpContext.Current.Session.SessionID;
}
}
public static CurrentUserVM CurrentUser
{
get
{
return (CurrentUserVM)HttpContext.Current.Session["CurrentUser"];
}
set
{
HttpContext.Current.Session["CurrentUser"] = CurrentUser;
}
}
}
因此,我尝试在登录操作中使用上述类设置值,如下所示:
CurrentUserVM currentUser = new CurrentUserVM();
currentUser.User = db.userClass.FirstOrDefault(m => m.EmailID.Equals(objLogin.EmailID));
currentUser.isAuthenticated = true;
SessionCache.CurrentUser = currentUser;
SessionCache.CurrentUser.isAuthenticated = currentUser.isAuthenticated;
但 SessionCache.CurrentUser 仍然保持空值。我的代码有问题吗?
我认为问题很明显。只是简单地改变这个
HttpContext.Current.Session["CurrentUser"] = CurrentUser;
进入这个
HttpContext.Current.Session["CurrentUser"] = value;