我正在尝试使用ServiceStack构建一个基本的“谁在线”功能。
会话缓存定义如下:
var cacheClient = new MemoryCacheClient();
container.Register<ICacheClient>(cacheClient);
UserAuthId&amp; amp;有没有办法过滤会话集合? AuthUserSession对象中的LastModified字段?
答案 0 :(得分: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);
}
此代码应位于从AuthUserSession派生的CustomUserSession类中