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

时间:2017-02-10 17:35:26

标签: asp.net-mvc session

所以,这就是想法。我有一个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。我的代码有问题吗?

1 个答案:

答案 0 :(得分:1)

我认为问题很明显。只需简单地改变这个

HttpContext.Current.Session["CurrentUser"] = CurrentUser;

进入这个

HttpContext.Current.Session["CurrentUser"] = value;