1

当用户通过身份验证时,会话使用定义的 ICacheclient 存储,可以是 memory、memcached 或 redis。如果我使用两个 Web 服务器,我想会话只填充在完成身份验证的服务器上,对吗?

在这种情况下我是否必须使用粘性会话(内存缓存客户端)?

4

1 回答 1

2

我们有一对服务器来提供我们的 Web 应用程序,并且可以根据需要进行扩展。我们使用 REDIS 通过 ICacheclient 接口来维护客户端的身份验证状态。为了在构建机器上轻松测试,我们根据是否附加了调试器在 redis 和 memcached 之间切换。我们的 Apphost.cs 有这个:

if (Debugger.IsAttached)
{
    container.Register<ICacheClient>(new MemoryCacheClient());        
}
else
{
    container.Register<IRedisClientsManager>(c => new PooledRedisClientManager(AppConfig.REDISUrl + ":" + AppConfig.REDISPort));
    container.Register<ICacheClient>(c => (ICacheClient)c.Resolve<IRedisClientsManager>().GetCacheClient());
}

内置的身份验证方法仅适用于 ICacheClient 设置为文档中所述的任何内容

于 2013-03-13T22:27:56.233 回答