我目前正在开发一个使用HttpSessionState Session对象的Web项目。 当用户登录时,会话对象将填充用户名,用户ID和一些其他属性。 这是在登录页面中发生的事情:
UserSession userSession = applicationManager.GetUserSession(userName);
Session["userSession"] = userSession;
然后在每个页面加载我正在做的第一件事后面的代码就像检查会话状态一样:
UserSession session = (UserSession)Session["userSession"];
if (session == null /*|| !User.Identity.IsAuthenticated */ || session.UserId == 0 )
AuthorizationServer.DeportUser();
当我关闭Internet Explorer浏览器中的选项卡,然后在同一浏览器中的另一个选项卡中登录时,它可以正常工作,直到在某个页面中,Session对象从其属性中被清除,并且用户被踢出网络应用程序(同样,仅在此特定页面中)。 除了Internet Explorer之外,任何其他浏览器都不会出现此问题。
我没有在开发人员工具中看到任何特殊问题,我渴望得到这个错误的暗示或方向。