首页 > 解决方案 > 已通过页面 C# 上的空会话变量

问题描述

我在与设置位置不同的页面上检索会话变量时遇到问题。session 变量包含一个用户类对象,其中包含当前用户的大约 15 个不同的用户属性。

我需要在所有页面上都可以使用它,并且不想每次登陆页面时都重新查询数据库。在我的default.aspx我有以下代码在page_init

protected void Page_Init(object sender, EventArgs e)
{
    // Get the logged in user id with acct domain (ie. acct05\abc123)
    masterNtId = Request.ServerVariables["LOGON_USER"].ToString();
    // Get the logged in user id (ie. abc123)
    masterNtID_short = masterNtId.Substring(masterNtId.IndexOf("\\") + 1);
    // Get the current page (ie. /PMM/page_name.aspx)

    UserObject user = TheUser.User.SearchUserWhitePages(masterNtID_short);
    Session["UserProfile"] = user;

    //Added to test that session is being set
    UserObject theuser = (UserObject)Session["UserProfile"];
    string name = theuser.get_UserName();

}

它成功返回会话变量。但是,当我在另一个页面上添加以下代码时,我也从 default.aspx 导航我收到此错误

“发生了‘System.NullReferenceException’类型的异常”

protected void Page_Load(object sender, EventArgs e)
{
    UserObject theuser = (UserObject)Session["UserProfile"];
    string name = theuser.get_UserName();
}

EnableSessionState = True在aspx页面上设置。我不确定我忘了做什么。我应该以不同的方式设置会话状态变量吗?

标签: c#asp.net

解决方案


推荐阅读