title: Where should we manage session objects in an ASP.NET application?
body: <p>I am developing a 3-tired ASP.NET C# web application and was wondering where should the sessions be managed. I have a SessionManager class as follows:</p>
  
  <pre><code>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; }
              }
      }
  </code></pre>
  
  <p>Now should the session information be managed in the Business Logic Layer or should it be managed in the Presentation Layer? </p>