【问题标题】:Global Variable for ASP.Net MasterPageASP.Net MasterPage 的全局变量
【发布时间】:2014-06-26 10:48:39
【问题描述】:

我正在将 web 应用程序从框架集布局转换为母版页布局。框架集中的每个页面都使用一个通用的自定义类来获取登录用户,该自定义类继承自 Page。

我认为接口是转换它的正确方法,但我真的错了。存储全局变量或类以便 Masterpage 的每个内容页面都可以引用登录的用户类的最佳和最有效的方法是什么?

【问题讨论】:

  • 是的,对不起,我忘了把这些信息放进去
  • 放入Session缓存中。只要用户登录,会话缓存就会持续。

标签: asp.net global-variables master-pages


【解决方案1】:

使用静态方法使其成为一个简单的静态类,该类将返回登录的用户类,无需将此代码与 ASP.NET 页面绑定。如果获取登录用户需要一些时间,那么昂贵的操作(例如数据库查询)将登录的用户类实例存储在会话中。像这样:

public static class Users
{

  public static User GetLoggedUser()
  {
    if (HttpContext.Current.Session["LoggedUser"] != null)
    {
      return (User)HttpContext.Current.Session["LoggedUser"];
    }
    else
    {
      User usr = GetLoggedUserSomehow(); // here goes your current code to get user
      HttpContext.Current.Session["LoggedUser"] = usr;
      return usr;
    }
  }

}

【讨论】:

    猜你喜欢
    • 2010-10-15
    • 2015-05-24
    • 2011-07-04
    • 1970-01-01
    • 2019-12-13
    • 2019-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多