道歉的 Headers 道歉 . 我们希望我们的应用程序共享会话状态 . 这是交易:

  • apps x.pe.com和y.pe.com正在使用ASP.NET Session State Provider for Redis(又名RedisSessionStateProvider)

  • 用户登录到x.pe.com,它执行一些计算并将 Session["UserStats"] = 23; (或其他)写入Redis . 到目前为止都很好 .
    然后

  • 用户点击y.pe.com提供的页面 . 由于这两个应用都会发布域名为".pe.com"的Cookie,因此x.pe.com中的Cookie会随请求一起发送到y.pe.com .

  • 因此用户在y.pe.com上获得授权 . 大 .

  • y.pe.com调用 var userStats = Session["UserStats"]; ,这就是问题所在 .

我在redis中捅了一下,发现x.pe.com存储的密钥名称属于 PE_usxuattjkpn1j4kprgnmthu3_Data . 当然这个密钥将为x.pe.com而不是y.pe.com所知 . 所以我强烈怀疑在 var userStats = Session["UserStats"]; 之后,userStats将为null .

两种选择似乎有用:

哪个是“最好的”?我倾向于1.工作,因为它“应该工作”并且易于理解 .

非常感谢 .