2009-10-04 97 views
2

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

回答

6

只是好奇你为什么要保存在基页的构造函数?

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

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

会话变量将访问在任何时候实现页面功能时,为什么不能创建一个静态类/方法与功能抓住你所有的会话数据?我不明白你为什么要在你的基类中复制这些数据的存储。

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

+1

谢谢是一个很大的意见。我在weblogs.asp.net上查看了所提供的guire,它的工作方式非常神奇! – 2009-10-04 14:57:01