首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取Castle-Monorail站点的当前会话?

获取Castle-Monorail站点的当前会话?
EN

Stack Overflow用户
提问于 2011-01-28 17:01:18
回答 2查看 406关注 0票数 1

我正在修改我继承的Castle-Monorail站点,并发现查看当前在线用户的列表会很有用。目前有一些过滤器可以确定谁可以访问站点的哪些部分,这样我就可以区分已登录的会话和未登录的会话。有没有一种简单的方法可以获得活动会话的列表,这样我就可以知道谁已经登录了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-24 23:46:51

这是我最终得到的解决方案:

(来自:https://stackoverflow.com/q/1470571/126785和Ken Egozi的评论)

在Global.asax.cs中:

代码语言:javascript
复制
private static readonly object padlock = new object();
private static Dictionary<string,SessionData> sessions = new Dictionary<string,SessionData>();
public static Dictionary<string, SessionData> Sessions
{
    get { lock (padlock) { return sessions; } }
}

public struct SessionData
{
    public string Name { get; set; }
    public int AccountId { get; set; }
    public string CurrentLocation { get; set; }
}

protected void Session_Start(object sender, EventArgs e)
{
    Sessions.Add(Session.SessionID, new SessionData());
}

protected void Session_End(object sender, EventArgs e)
{
    Sessions.Remove(Session.SessionID);
}

public static void SetSessionData(string sessionId, int accountId, string name, string currentLoc)
{
    Sessions.Remove(sessionId);
    Sessions.Add(sessionId, new SessionData { AccountId = accountId, CurrentLocation = currentLoc, Name = name });
}

public static void SetCurrentLocation(string sessionId, string currentLoc)
{
    SessionData currentData = Sessions[sessionId];
    Sessions.Remove(sessionId);
    Sessions.Add(sessionId, new SessionData { AccountId = currentData.AccountId, CurrentLocation = currentLoc, Name = currentData.Name });
}

然后在登录时:

代码语言:javascript
复制
Global.SetSessionData(((HttpSessionStateContainer)Session.SyncRoot).SessionID,account.Id,account.Name,"Logged In");

现在我只需要计算出更新位置的最佳位置。从每个函数调用可能有点累人!

票数 0
EN

Stack Overflow用户

发布于 2011-01-29 00:37:28

我相信没有一种简单的方法,除非您将用户登录信息存储在数据库或应用程序变量中,否则您无法知道有多少活动会话。

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

https://stackoverflow.com/questions/4826446

复制
相关文章

相似问题

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