ServiceStack - Redis会话累积

时间:2015-02-01 03:25:48

标签: redis servicestack

在AppHost.cs中

container.Register<IRedisClientsManager>(
         c => new PooledRedisClientManager(redisConnectionString));

我没有看到这些会话在30秒内得到清理。

public class MyUserSession: AuthUserSession {
  public override void OnAuthenticated(IServiceBase authService, 
          IAuthSession session, IAuthTokens tokens, 
          Dictionary <string, string > authInfo) {
          ...do stuff here
          authService.SaveSession(session, TimeSpan.FromSeconds(30));
  }
}

enter image description here

我是否在redis配置中遗漏了某些内容或者可能设置错误?此外,如果我第二次登录,他们会开始累积相同的用户。如果当前用户有现有会话,我们是否应该使用此方法进行清理?

1 个答案:

答案 0 :(得分:1)

那只会保存那段时间的会话,如果会话再次保存,如果使用默认的到期,它将被覆盖。

您可以通过覆盖AppHostBase.OnSaveSession()来控制每次保存会话,例如:

public override void OnSaveSession(
    IRequest httpReq, IAuthSession session, TimeSpan? expiresIn = null)
{
    base.OnSaveSession(session, TimeSpan.FromSeconds(30));
}