2016-10-04 23 views
2

ServiceStack应用后(但只/ AUTH以及见下面出现问题)Servicestack丢失会话,直到缓存清理,推斌/ js文件采用了棱角分明

浏览器,我肯定碰到的问题:浏览器,Safari浏览器

遇到用户登录重定向后立即丢失会话的问题。我已经使用/ auth?用户名&密码进行了测试,我得到的会话ID很好,但回到/ auth显示我是未经授权的。

与使用隐身模式一样,清除缓存可解决此问题。

我试图将版本添加到CSS和JS文件,以防万一这是推送时的问题,但这不能解决问题。

步骤来重现

  • 推dll文件,js文件
  • 去登台网站
  • 尝试登录...成功
  • 重定向和会话了

任何想法在何处查看/解决此问题而不强制应用程序用户清除缓存?任何想法/方向都会非常有帮助。

+1

用户在重定向时是否保持在同一个域中?你使用会话cookie还是会话状态服务器?检查了您的会话cookie /服务器值/设置? –

+0

感谢您的建议,这让我看到了导致解决方案的Cookie域 – Thrashmandicoot

回答

1

好的,找出问题了!这一个很有趣。

设置: 我们有上演,这是SSL

  • sub.example.com //分期上,这是不SSL
  • 2个servicestack网站

    • example.com //

      下面是问题如何转载,当测试我们会...

      • 登录example.com在一些宝int之前会产生.example.com cookie域
      • 我们会将文件更改推送到sub.example.com,这将擦除此子域的Cookie
      • 我们将尝试登录到sub.example.com并失败
      • 如果我删除.example.com的来自example.com饼干,登录sub.example.com将被罚款

      要解决,我们做了sub.example.com SSL为好,其固定问题。长期以来,我们将制作所有Cookie通配符,并根据Mythz建议添加非memcache提供程序。

    3

    如果您使用的是MemoryCacheClient,那么将文件添加到Web应用程序的文件夹将重新启动ASP.NET应用程序域,以重新启动Web应用程序,清除所有现有内存。

    您需要使用任何其他distributed Caching Provider以保持缓存和会话超出App Domain重新启动。