我们应该在ASP.NET应用程序中管理会话对象?

时间:2010-05-25 19:19:18

标签: c# asp.net session

我正在开发一个3-tired 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; }
            }
    }

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

2 个答案:

答案 0 :(得分:2)

在ASP.NET,Viewstate,Session& Cookie应该在表示层中进行管理。

缓存可能是唯一应该为...松开耦合的东西。当你想要缓存数据时,它应该在Business或Facade层中进行管理。

答案 1 :(得分:1)

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

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