所以,这就是想法。我有一个SessionCache类来获取和设置会话变量,这是简单的用户信息。所以我想在用户成功登录后将值设置为session并使用此类来获取会话整个应用程序中的值。但不知何故,我无法在SessionCache类中将值设置为会话变量。
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仍然是null。我的代码有问题吗?
答案 0 :(得分:1)
我认为问题很明显。只需简单地改变这个
HttpContext.Current.Session["CurrentUser"] = CurrentUser;
进入这个
HttpContext.Current.Session["CurrentUser"] = value;