如何在ASP.Net中从Base类访问Session vars?

时间:2009-10-04 14:36:20

标签: c# asp.net session session-variables

我在asp.net中遇到过有关Sessions的问题。我正在创建一个ASP.Net Web应用程序。我创建了一个名为BasePage的类,它继承自System.Web.Ui.Page。这个BasePage类是一个System.Web.Ui.Page,其中有一个名为ActiveUser的附加成员,类型为ActiveUser(我自己创建的一个类)。在BasePage的构造函数中,我将成员ui设置为this.ui = (ActiveUser)Session["ActiveUser"],这是先前设置的会话变量。但是,当我运行我的项目时,我在HttpException上的BasePage构造函数中获得this.ui = Session["ActiveUser"]。它告诉我检查配置文件中的enableSessionState是否设置为true,我已经检查过它。有没有人对如何解决这个问题有什么看法?非常感谢。 感谢名单!

1 个答案:

答案 0 :(得分:6)

好奇为什么要在基页构造函数中保存它?

您不应该从构造函数访问会话,而是使用Page_Init。请参阅以下帖子:

http://weblogs.asp.net/anasghanem/archive/2008/05/07/avoid-using-the-session-in-the-page-constructor.aspx

在实现页面功能时,可以随时访问会话变量,那么为什么不创建一个具有获取所有会话数据功能的静态类/方法?我不明白为什么你想要在你的基类中复制这些数据的存储。

您可能想要查看此主题: ASP.Net Session