【发布时间】:2012-11-10 00:57:30
【问题描述】:
有没有办法从现有的请求上下文中找出会话 ID 是否有效?在那,如果我获得了一个会话 ID,并且我当前处于由 Http 请求发起的另一个会话中,并且我在一个页面或某个类中,我可以验证该会话 ID,如果它有效并且当前存在并且没有被抛弃?
这样做的原因是,我们需要在我正在处理的项目的页面上锁定用户登录过程,以便任何用户只能登录一次。我对此的想法是在用户表中添加一个会话 id 列,如果它为空,则他们已注销,并在他们登录时设置并在他们注销时或在 global.asax 中的 Session_End 上清除。但是,如果由于某种原因会话被放弃而没有清除,我需要能够再次登录,在这种情况下,只要他们登录并在该列中找到会话 ID,我认为它应该以某种方式检查该会话 ID 是否处于活动状态且有效,如果不是,它将重置为新的会话 ID 并允许他们登录。
谢谢
【问题讨论】:
-
您需要永远保持他们的会话吗?这意味着 ASP .NET 最终将放弃过期的会话。但从用户的角度来看,应用程序状态是否应该始终保持不变?
-
我们没有,我们有 30 分钟的滑动时间,需要用户重新登录。我们没有使用任何基于 cookie 的身份验证,只是活动会话并将用户对象存储在它。当会话超时时,他们会“注销”并必须重新登录。
标签: c# asp.net session login httprequest