C# 我们应该在哪里管理ASP.NET应用程序中的会话对象?

C# 我们应该在哪里管理ASP.NET应用程序中的会话对象?,c#,asp.net,session,C#,Asp.net,Session,我正在开发一个3层的ASP.NET C#web应用程序,想知道应该在哪里管理会话。我有一个SessionManager类,如下所示: public sealed class SessionManager { private const string USER = "User"; private SessionManager() { } public stati

我正在开发一个3层的ASP.NET C#web应用程序,想知道应该在哪里管理会话。我有一个SessionManager类,如下所示:

public sealed class SessionManager
        {
            private const string USER = "User";
            private SessionManager()
            {
            }

            public static SessionManager Instance
            {
                get { return _instance; }
            }


            public User User
            {
                get { return HttpContext.Current.Session[USER] as User; }
                set { HttpContext.Current.Session[USER] = value; }
            }
    }

现在,会话信息应该在业务逻辑层中管理,还是应该在表示层中管理

通常,会话对象应仅用于表示层,否则您将向业务层添加特定于web的逻辑(表示)。你会打破松耦合


如果我必须打破松散耦合,我会做一些比会话对象更好的事情:-)

在ASP.NET中,Viewstate、会话和Cookie应该在表示层中进行管理

缓存可能是您唯一应该打破松耦合的东西……当您想要缓存数据时,它应该在业务层或门面层进行管理