C# 如何从ASP.Net中的基类访问会话变量?

C# 如何从ASP.Net中的基类访问会话变量?,c#,asp.net,session,session-variables,C#,Asp.net,Session,Session Variables,我遇到了一个关于asp.net中会话的问题。我正在创建一个ASP.NETWeb应用程序。我创建了一个名为BasePage的类,该类继承自System.Web.Ui.Page。这个BasePage类是一个System.Web.Ui.Page,它有一个名为ActiveUser的额外成员,类型为ActiveUser(我自己创建的一个类)。在BasePage的构造函数中,我将成员ui设置为this.ui=(ActiveUser)Session[“ActiveUser”],这是以前设置的会话变量。然而,当

我遇到了一个关于asp.net中会话的问题。我正在创建一个ASP.NETWeb应用程序。我创建了一个名为BasePage的类,该类继承自System.Web.Ui.Page。这个BasePage类是一个System.Web.Ui.Page,它有一个名为ActiveUser的额外成员,类型为ActiveUser(我自己创建的一个类)。在BasePage的构造函数中,我将成员ui设置为
this.ui=(ActiveUser)Session[“ActiveUser”]
,这是以前设置的会话变量。然而,当我运行我的项目时,我在BasePage的构造函数中得到一个
HttpException
,位于
this.ui=Session[“ActiveUser”]
。它告诉我检查,但是在配置文件中enableSessionState设置为true,我已经检查了它是否为true。有人知道如何解决这个问题吗?非常感谢。
塔克斯

只是好奇为什么要将其保存在基本页构造函数中

您不应该从构造函数访问会话,而应该从页面_Init访问会话。见以下帖子:

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

您可能希望签出此线程:

谢谢你的建议。我在weblogs.asp.net上遵循了建议的guire,它像魔术一样工作!