使用 mvc 中的属性分配会话值



所以,这就是这个想法。我有一个会话缓存类,用于获取和设置会话变量,这是简单的用户信息。因此,我想在用户成功登录后将值设置为会话,并使用此类在整个应用程序中获取会话值。但不知何故,我无法将值设置为会话缓存类中的会话变量。

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;

最新更新