Referencing an object as a session variable causes NullReferenceException

I would like to reference an object as a session variable. In the past, I have written a class that would get; set; System.HttpContext.Session["SomeValue"] on a value by value basis. I would rather create an object that has all the get; set; values encapsulated and then reference the entire object as a session variable.

Here is the SessionVariable class sv...

namespace TesWebApps.Helpers
{
    public static class sv
    {
        public static TesUser _TesUser
        {
            get
            {
                return (TesUser)System.Web.HttpContext.Current.Session["_TesUser"];
            }
            set
            {
                System.Web.HttpContext.Current.Session["_TesUser"] = value;
            }
        }

        public static bool IsLoggedIn
        {
            get
            {
                return (bool)System.Web.HttpContext.Current.Session["IsLoggedIn"];
            }
            set
            {
                System.Web.HttpContext.Current.Session["IsLoggedIn"] = value;
            }
        }
    }

    public class TesUser
    {
        public TesUser()
        {
            ID = 0;
            SchoolID = 0;
            Name = "";
            Comment = "";
            Rights = 0;
            Activities = "";
            UseAccountsOnly = false;
            AllAccounts = false;
            HasActivities = false;
            HasAccounts = false;
        }

        public int ID { get; set; }
        public int SchoolID { get; set; }
        public string Name { get; set; }
        public string Comment { get; set; }
        public int Rights { get; set; }
        public string Activities { get; set; }
        public bool UseAccountsOnly { get; set; }
        public bool AllAccounts { get; set; }
        public bool HasActivities { get; set; }
        public bool HasAccounts { get; set; }
    }
}

When I try to reference the session variable (as below) I get a NullReferenceExcption on each attribute (ID, SchoolID, Name, etc). I know I'm just not wiring this up properly. Any help would be appreciated.

    protected void LoginEmployee(string login, string password)
    {
        try
        {
            if (db.ApplicationUsers.Any(u => u.Login == login && u.Password == password))
            {
                var user = from u in db.ApplicationUsers
                           where u.Login == login && u.Password == password
                           select u;

                sv._TesUser.ID = user.FirstOrDefault().ApplicationUserID;
                sv._TesUser.HasAccounts = Convert.ToBoolean(user.FirstOrDefault().HasAccounts);
                sv._TesUser.HasActivities = Convert.ToBoolean(user.FirstOrDefault().HasActivities);
                sv._TesUser.SchoolID = Convert.ToInt32(user.FirstOrDefault().SchoolID);
                sv._TesUser.UseAccountsOnly = Convert.ToBoolean(user.FirstOrDefault().UseAccountsOnly);
                sv._TesUser.Rights = Convert.ToInt32(user.FirstOrDefault().Rights);
                sv._TesUser.Name = user.FirstOrDefault().Name.ToString();
                sv.IsLoggedIn = true;

                // set the authentication cookie
                FormsAuthentication.SetAuthCookie(login, false);

                // check for original page URL in request
                string returnUrl = Request.QueryString["ReturnUrl"] as string;
                if (returnUrl != null)
                    Response.Redirect(returnUrl);

                Response.Redirect("~/Start.aspx");
            }
            else
            {
                throw new ValidationException("Employee not found. Please re-enter your credentials and try again.");
            }
        }
        catch (Exception ex)
        {
            if (ex.Message != "Thread was being aborted.")
            {
                ThrowValidationException(ex);
                sv.IsLoggedIn = false;
            }
        }
    }