【问题标题】:Kill session on another machines by Session ID按会话 ID 杀死另一台机器上的会话
【发布时间】:2014-05-10 04:50:13
【问题描述】:

如果新会话以与在另一台机器上运行的会话中的用户名相同的用户名开始,我想终止另一台机器上的会话,我将“用户名”和会话 ID 存储为应用程序变量并在会话时删除它们结束了

Session_Start()

if (Application[Session["Username"].ToString()] != null)

            {
                string id =  Application[Session["Username"].ToString()].ToString(); 

                                    //kill the session



                Application[Session["Username"].ToString()] = HttpContext.Current.Session.SessionID;

            else
                Application[Session["Username"].ToString()] = HttpContext.Current.Session.SessionID;

Session_End()

应用程序[会话[“用户名”].ToString()] = null;

所以基本上,我留下的东西是在一些会话集合中找到会话并杀死它,有人知道怎么做吗?

【问题讨论】:

  • 你看到你的代码是如何格式化的吗?你对此有什么想法?

标签: asp.net session


【解决方案1】:

通过将 mode 属性更改为 SqlServer 将会话数据存储在数据库服务器上

<sessionState mode="SqlServer" 
  sqlConnectionString="data source=127.0.0.1;user id=sa; password=" 
  cookieless="false" timeout="20" />

然后查询会话数据库

select SessionItemShort,
SessionItemLong
from ASPStateTempSessions

【讨论】:

  • 我不能使用会话状态模式="sqlserver",因为这样 session_end 永远不会被启动,我将它用于其他东西。所以我仍然想知道它是否可以在 C# 中终止会话跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-20
  • 1970-01-01
  • 1970-01-01
  • 2011-08-11
  • 2014-11-19
  • 2012-12-31
  • 2016-10-08
相关资源
最近更新 更多