HttpContext.Current.Session [“UserID”]不为空甚至Session [“UserID”]在asp.net会话超时后为null

时间:2015-04-16 09:56:12

标签: c# asp.net session session-state session-timeout

我在页面加载时设置了Session["UserID"]。像

if(!IsPostBack) {
   Session["UserID"] = 1222;
}

我正在使用HttpContext.Current.Session [“UserID”]来验证用户会话超时。

我的网络配置设置如下,

<sessionState mode="InProc" cookieless="false" timeout="20"/> 

20分钟Session["UserID"]对象为空,但同时,如果我验证HttpContext.Current.Session["UserID"]它显示用户ID。

请在会话超时后告诉我HttpContext.Current.Session["UserID"]如何为空

2 个答案:

答案 0 :(得分:0)

SessionSystem.Web.UI.Page类的System.Web.UI.UserControl属性是对HttpContext.Current.Session的引用。

你引用session["UserId"](注意小写的's') - 但你没有说明这是什么引用。据推测它是在您自己的代码中定义的,并没有引用HttpContext.Current.Session

答案 1 :(得分:0)

请检查您是否在自定义控制器库或派生类中设置了会话值。

作为示例,如果您在 ActionFilterAttribute 检查会话过期重定向的会话值。请确保您的控制器继承的调用不存在会话集方法。

因为在调用控制器操作方法之前,将调用控制器构造函数

我相信这会对某人有所帮助