0

我用这段代码存储redis db

   redisClientsManagerX = new PooledRedisClientManager("127.0.0.1:6379");
    container.Register<IRedisClientsManager>(c => redisClientsManagerX);
   container.Register<ICacheClient>(c => c.Resolve<IRedisClientsManager>().GetCacheClient()).ReusedWithin(Funq.ReuseScope.None);


            Plugins.Add(new AuthFeature(() => new AuthUserSession(),  new IAuthProvider[] { new BasicAuthProvider() }
  ));

            // Use a RedisAuthRepository
            var userRepo = new RedisAuthRepository(redisClientsManagerX);
            container.Register<IUserAuthRepository>(userRepo);

            // Enable the RegistrationFeature
            Plugins.Add(new RegistrationFeature());

但是,当我检查 redis db 时; 在此处输入图像描述

有没有办法禁用这个自动 iauthsessionstore 禁用?

4

1 回答 1

2

因此,您希望将用户配置文件存储在 Redis 中,并使用此源对其进行身份验证,但您不希望将活动会话存储在 Redis 中?有可能,尽管我不确定这是一种常见情况,但请参阅此答案末尾的警告。

更改为MemoryCacheProvider

MemoryCacheClient您可以通过将缓存提供程序指定为 a而不是使用 Redis 缓存客户端来防止将会话存储到 Redis 。

将此行更改为:

container.Register<ICacheClient>(c => c.Resolve<IRedisClientsManager>().GetCacheClient()).ReusedWithin(Funq.ReuseScope.None);

至:

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

警告:

  • 会话数据将存储在 ServiceStack 应用程序的内存中。
  • 如果您使用的是 IIS,那么 IIS 可能会随时回收应用程序,并且缓存内容将会丢失。
  • 像这样的内存缓存本地化到运行应用程序的服务器,因此不适合服务器场/集群。
于 2014-07-18T09:38:30.910 回答