【问题标题】:How can I access Session vars from Base class in ASP.Net?如何从 ASP.Net 中的基类访问会话变量?
【发布时间】:2009-10-04 14:36:20
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    您可能想查看此线程: ASP.Net Session

    【讨论】:

    • 非常感谢您的建议。我在 weblogs.asp.net 上遵循了建议的指南,它就像魔术一样工作!
    猜你喜欢
    • 2010-10-11
    • 2011-11-25
    • 1970-01-01
    • 2017-06-09
    • 2012-08-13
    • 2014-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多