【问题标题】:Where should we manage session objects in an ASP.NET application?我们应该在哪里管理 ASP.NET 应用程序中的会话对象?
【发布时间】:2010-05-26 03:34:26
【问题描述】:

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

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

【问题讨论】:

    标签: c# asp.net session


    【解决方案1】:

    在 ASP.NET 中,视图状态、会话和 Cookie 应在表示层中进行管理。

    缓存可能是您应该打破松散耦合的唯一方式......当您想要缓存数据时,它应该在业务或外观层中进行管理。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2021-12-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-27
        • 2011-03-04
        • 1970-01-01
        相关资源
        最近更新 更多