2

我正在尝试使用 ServiceStack 构建一个基本的“谁在线”功能。

会话缓存定义如下:

        var cacheClient = new MemoryCacheClient();
        container.Register<ICacheClient>(cacheClient);

有没有办法通过 AuthUserSession 对象中的 UserAuthId 和 LastModified 字段过滤会话集合?

4

1 回答 1

3

对于任何感兴趣的人,这是我最终的做法:

 var cache = ((Service) (authService)).Cache;
        var online = cache.Get<Dictionary<string, CustomUserSession>>("users_online") ?? new Dictionary<string, CustomUserSession>();
        if(!online.ContainsKey("usr_" + base.UserAuthId))
        {
            online.Add("usr_" + base.UserAuthId, this);
            cache.Set("users_online", online);
        }

此代码应该在您的 CustomUserSession 类中,该类派生自 AuthUserSession

于 2013-08-17T06:26:36.717 回答