默认情况下,会话到期似乎是20分钟.
更新:我不希望会话在浏览器关闭之前到期.
Update2:这是我的方案.用户登录网站.在网站周围播放.离开电脑去洗澡(> 20分钟;)).回到电脑,应该可以玩.他关闭浏览器,删除会话cookie.下次他从新的浏览器实例访问该网站时,他需要再次登录.
在PHP中,我可以将php.ini中的session.cookie_lifetime设置为零来实现此目的.
如果要将会话延长超过20分钟,可以使用IIS管理员更改默认值,也可以在web.config文件中进行设置.例如,要在web.config中将超时设置为60分钟:
... other elements omitted .... ... other elements omitted ...
您可以在代码中为特定用户执行相同操作:
Session.Timeout = 60
无论您选择哪种方法,您都可以将超时更改为您认为合理的任何值,以允许您的用户执行其他操作并仍然维护其会话.
当然也有缺点:对于用户来说,存在可能的安全问题,即让他们的浏览器无人看管并且当其他人开始使用它时仍然登录.对于您而言,服务器上存在内存使用问题 - 会话持续时间越长,您在任何时候使用的内存就越多.是否重要取决于服务器上的负载.
如果您不想猜测合理的扩展超时,则需要使用已建议的其他技术之一,要求在浏览器中运行一些JavaScript以定期ping服务器和/或在卸载页面时放弃会话(当然,前提是用户不会访问您网站上的其他页面).