单例会话asp.net

单例会话asp.net,asp.net,session,singleton,Asp.net,Session,Singleton,我在用户登录时获取了用户设置,并将其存储在singlton会话中,下面是代码。 它是针对每个用户的,而不是应用程序范围。之前我在会话中存储静态对象,它在所有用户之间共享,现在我创建了单例会话 下面的代码是线程安全的 public string FirstName { get; set; } public string LastName { get; set; } public static U

我在用户登录时获取了用户设置,并将其存储在singlton会话中,下面是代码。
它是针对每个用户的,而不是应用程序范围。之前我在会话中存储静态对象,它在所有用户之间共享,现在我创建了单例会话

下面的代码是线程安全的

 public string FirstName
    {
        get;
        set;
    }
 public string LastName
    {
        get;
        set;
    }

 public static Users Currentuser
    {
        get
        {
                HttpSessionState session = HttpContext.Current.Session;
                lock (padlock)
                {
                    if (session["UserInfo"] == null)
                    {
                        session["UserInfo"] = new Users();
                    }
                }
                return (Users)session["UserInfo"];
            }
   }

我正在为每个请求创建新会话,保存并从中检索值

会话本身不是线程安全的吗?是的,但我为当前用户创建会话对象和访问会话对象的方式是我想问的。