c# - 已通过页面 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页面上设置。我不确定我忘了做什么。我应该以不同的方式设置会话状态变量吗?
解决方案
推荐阅读
- node.js - axios 是否会延迟 http 请求
- jquery - 每次用户标记具有特定类的单选按钮时如何增加分数
- javascript - 无法在标签中显示新行
- microsoft-graph-api - Microsoft Graph API 将新的 ListItem 字段日期时间间隔插入到 8 小时
- xamarin.forms - Xamarin 表单中的轮播视图不响应视图中的图像按钮
- javascript - 将 `Array.prototype.includes` 传递给回调而不将其包装在异常函数中?
- javascript - React 组件正在无限次重新渲染
- python - 用链式掩码替换 numpy 数组元素
- xml - Perl XPath:使用“and”返回两个节点
- python - PDF到Python中的文本在图像文件中返回空结果