【问题标题】:How to kill the session from Unique sessionID?如何从唯一 sessionID 中终止会话?
【发布时间】:2012-03-28 07:42:29
【问题描述】:

我已经统计了网络服务器的在线用户数量。我已经创建了用户名并将密码分配给个人计算机,然后使用此用户名用户可以访问主页&登录用户后,我在数据表中添加了用户名、会话 ID、IP 地址。如果我的用户已经从另一台计算机连接,那么同一用户从另一台计算机访问信息,那么用户首先使用从 sessionID 中终止会话断开已经连接的当前计算机。然后自动对用户禁用另一台计算机功能,然后用户可以为当前计算机启动新会话。

如何从唯一 sessionID 中终止会话并禁用另一台计算机用户的所有功能?

【问题讨论】:

  • 您不能为此使用 Session,因为会话仅限于客户端的请求但是您的问题是处理多个客户端,因此会话似乎不适合这个原因。一些数据库存储,检索可以在这里工作..

标签: c# asp.net


【解决方案1】:

我会这样尝试: 登录时生成一个随机字符串,将其写入会话变量并将其存储在数据库中,然后在您的页面中将这些值相互比较以验证用户访问权限。这样一个用户只能登录一次。

【讨论】:

  • 你的英语很糟糕,你能试着解释一下你的意思吗?你的回复没有多大意义。你的问题也很难理解。
【解决方案2】:

您可以使用此代码:

Session.Remove("keyOfSession");

【讨论】:

  • 如果我们使用它来删除特定计算机的会话,那么它将自动禁用网页功能
  • 我很确定他想杀死会话,而不是会话变量
【解决方案3】:

例如,您可以在 ApplicationInstance 中有一个属性对象,例如 Dictionary :

  • 键是 userId
  • Value 将是 KeyValuePair 的列表,其中
    • KVP 密钥将是用户 IP
    • KVP 值将是对会话对象的弱引用

在 Session_Start 结束时,您在 Dictionary=>List 中为相应的用户和 IP 插入一个项目,该用户和 IP 持有对 Session 对象的 WeakReference。 然后,您还 End() 此用户和其他 IP 的所有其他非空、弱引用的 Session 对象(请注意,某些用户通过可能在请求之间更改的动态代理访问 Internet)

【讨论】:

    猜你喜欢
    • 2018-09-28
    • 1970-01-01
    • 1970-01-01
    • 2011-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-16
    相关资源
    最近更新 更多