0

使用 ASP.NET Forms 身份验证,可以将 webfarm 中的所有服务器设置为共享相同的机器密钥以加密身份验证票证,这意味着如果您可以在应用程序中不需要会话状态的情况下轻松扩展到 web 场.

即,http://www.iambacon.co.uk/blog/getting-asp-net-authentication-to-work-on-a-web-farm

有没有一种方法可以使用 ServiceStack 身份验证来完成这种断开连接的设置,或者实现是否需要将共享会话状态保存在所有 Web 服务器都可以访问的某个地方?我假设需要共享状态,但如果有办法解决它,有兴趣了解更多......(我们在全球范围内进行负载平衡,因此共享状态更具挑战性)

4

1 回答 1

2

ServiceStack会话本质上是在注册的缓存提供者中序列化的用户会话 DTO 。除了MemoryCacheClient持久化到分布式数据存储之外,所有缓存提供程序都可以通过使用相同的配置来自然地进行负载平衡。

实现的 Auth ProvidersIAuthWithRequest可以在没有事先认证的情况下即时认证并访问受保护的服务,即:

  • BasicAuthProvider
  • DigestAuthProvider
  • AspNetWindowsAuthProvider

但总体而言,这将是更差的性能,因为它必须对每个请求进行身份验证,而不是单个缓存命中来访问用户会话。

于 2015-09-10T00:57:51.297 回答