在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));
}
}
我是否在redis配置中遗漏了某些内容或者可能设置错误?此外,如果我第二次登录,他们会开始累积相同的用户。如果当前用户有现有会话,我们是否应该使用此方法进行清理?
答案 0 :(得分:1)
那只会保存那段时间的会话,如果会话再次保存,如果使用默认的到期,它将被覆盖。
您可以通过覆盖AppHostBase.OnSaveSession()
来控制每次保存会话,例如:
public override void OnSaveSession(
IRequest httpReq, IAuthSession session, TimeSpan? expiresIn = null)
{
base.OnSaveSession(session, TimeSpan.FromSeconds(30));
}