首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我怎样才能杀死一个特定的会话?它们存放在哪里?

我怎样才能杀死一个特定的会话?它们存放在哪里?
EN

Stack Overflow用户
提问于 2014-03-21 09:52:07
回答 1查看 767关注 0票数 0

我们目前正在构建一个MVC4 web应用程序,它需要实现每个用户的“独占”登录软件。这意味着,每个用户只允许有一个活动会话。如果在该会话期间,同一用户的另一个成功登录来自另一个浏览器或主机,则需要终止旧会话。

为此,我在用户登录时保存会话ID。当发生另一个登录时,我确实有这个用户的所有现有会话ID的列表(应该只有一个)。因此,我确实有一个会话ID作为字符串,我希望web应用程序可以使它失效/杀死/删除--但是如何以及在哪里可以这样做呢?所以我需要杀死一个会话本身,而不是其中的一个会话变量。

我试图在System.Web.HttpContext.Current.Session中找到一些东西,但据我所见,我只能访问当前会话(在当前用户和请求的上下文中),但是如何访问这个web应用程序的所有其他已建立的会话?

谢谢你的帮忙!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-21 09:59:06

您必须在服务器端控制会话。在服务器端,您可以访问分配给每个新会话的会话id。

因此,当用户登录时,您将分配的会话id存储在user表中。他拿到了这个疗程证明。在每个请求中,检查会话id是否等于存储在数据库中的会话id。

当用户发出另一个登录时,服务器将分配另一个会话id,对吗?您可以将这个新的会话id存储在用户的表上。

之后,来自旧会话的请求将被拒绝/重定向,因为会话id不再有效。旧的会话id被最后一个登录替换。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22555372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档