【问题标题】:Object reference error even when object is not null即使对象不为空,对象引用错误
【发布时间】:2010-05-27 16:47:47
【问题描述】:

我有一个应用程序,其中我在登录屏幕中加入了“记住我”功能。 我通过在用户第一次登录时创建一个 cookie 来做到这一点,所以下次当用户访问该站点时,我会获取 cookie 并加载用户信息。

我已经在 App_Code 文件夹中的一个公共类中编写了加载用户信息的代码......我所有的页面都继承自这个类。

加载用户信息的代码如下:

public static void LoadUserDetails(string emailId)
{
    UsersEnt currentUser = UsersBL.LoadUserInfo(emailId);

    if (currentUser != null)
        HttpContext.Current.Session["CurrentUser"] = currentUser;
}

现在的问题是当我尝试将 currentUser 对象存储在会话变量中时出现“对象引用”错误(即使 currentUser 对象不为空)。但是 currentUser 对象中的密码属性为空。

我是因为这个而收到错误...还是有其他原因??

谢谢

【问题讨论】:

    标签: c# asp.net session


    【解决方案1】:

    假设这是导致问题的最后一行,这表明HttpContext.CurrentHttpContext.Current.Session 为空。我建议你找出它是什么,然后找出原因。

    【讨论】:

      【解决方案2】:

      HttpContext.Current.Session 可能为空。

      必须在调用 AcquireRequestState 事件之后放置使用 State 的代码。请参阅page lifecycle 了解更多信息。

      尝试将代码放在 Page_Load 方法之后或内部。

      【讨论】:

        【解决方案3】:

        如果是抛出异常就行了:

        HttpContext.Current.Session["CurrentUser"] = currentUser;
        

        那么唯一的其他解释就是HttpContext.Current.Session为null。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-12-05
          • 2022-08-18
          • 1970-01-01
          • 2022-01-15
          • 2017-01-26
          • 2013-08-22
          相关资源
          最近更新 更多