5

我想更改 servicestack 的身份验证,使其不依赖于持久化的会话。

如果我错了,请纠正我,但 servicestack 使用会话来存储记住我的设置,这迫使我们将会话保持在某个地方,比如在 redis 或类似的东西中。因为如果我们使用内存缓存客户端并且应用程序重新启动,则会话不再存在并且记住我的功能消失了。

我想做的是放置我自己的记住我的cookie,这样即使会话由于某种原因不再存在(例如,使用内存缓存客户端时应用程序重新启动)。用户仍将被记录。

关于如何/从哪里开始做的任何线索?我必须承认我对 servicestack 中的哪个类有责任这样做有点困惑。

4

1 回答 1

5

听起来您只想实现自己的身份验证提供程序。ServiceStack 身份验证依赖于 2 种持久性模式,AuthRepository用于 UserAuth 信息的长期持久性,而Session可以快速查找它从已注册的ICacheClient.

注册的ICacheClient就是使用的那个,如果你没有指定一个,那么MemoryCacheClient默认情况下会注册一个内存中,它将在 AppDomain 重新启动时自行重置,其他缓存选项,即 Redis,Memcached 使用分布式缓存,因此它们是持久的跨应用程序域重新启动。

于 2012-12-11T17:19:17.110 回答