2

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

4

1 回答 1

6

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

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

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

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

你可能想看看这个线程: ASP.Net Session

于 2009-10-04T14:39:47.660 回答