如何使用ASP.NET为单个浏览器维护单个会话?

如何使用ASP.NET为单个浏览器维护单个会话?,asp.net,visual-studio-2010,session,session-state,Asp.net,Visual Studio 2010,Session,Session State,我刚刚开始在ASP.NET中创建web应用程序,我正在玩弄全局应用程序类,我注意到其中的Session\u Start方法是为每个独特的浏览器窗口调用的。也就是说,如果我在两个不同的Internet Explorer窗口中打开网页,它会执行两次 这并不理想,对吧?我的意思是,如果我要开发一个实时应用程序,我不会希望这种情况发生吧?比如,当我在Gmail.com上做同样的事情时——如果我登录到一个Internet Explorer窗口,然后在另一个窗口打开Gmail,我就保持登录状态。这是因为会话

我刚刚开始在ASP.NET中创建web应用程序,我正在玩弄全局应用程序类,我注意到其中的Session\u Start方法是为每个独特的浏览器窗口调用的。也就是说,如果我在两个不同的Internet Explorer窗口中打开网页,它会执行两次

这并不理想,对吧?我的意思是,如果我要开发一个实时应用程序,我不会希望这种情况发生吧?比如,当我在Gmail.com上做同样的事情时——如果我登录到一个Internet Explorer窗口,然后在另一个窗口打开Gmail,我就保持登录状态。这是因为会话,对吗


在这两种情况下,有没有办法通过会话实现我刚才所说的内容?

听起来很奇怪。我以前没有见过这种情况-IE的两个实例通常与一个会话相关联。@Oded这就是PHP中使用$\u会话时发生的情况。我不知道为什么会发生这种情况,也不知道它是否应该发生。据我所知,它不应该发生。如果您使用不同的浏览器或关闭其中一个的所有实例并重新打开,则会出现这种情况,但如果两个实例都处于活动状态(除非会话超时-默认值为20分钟),则不会出现这种情况。具体取决于IE版本。在IE8之前版本的IE中,从destop快捷方式启动新的IE窗口也会启动新会话。新窗口不会与预先存在的IE窗口共享cookie。这是从IE8改而来的。现在您必须从“文件”菜单显式启动一个新会话。@user1429080这很有趣。当我能再次访问我的计算机时,我会尝试这样做。