【发布时间】:2015-08-02 03:02:52
【问题描述】:
我需要在同一个 IIS 上的 2 个网站之间共享 asp.net 会话。
我创建了一个自定义会话数据库并劫持了存储过程以返回相同的 appID,而不管应用程序或 url。
我在 web.config 中为 db 创建了一个连接字符串:
- 然后我定义了会话状态:
我在我的 Win7 机器上使用 IIS7 开发了网站,并且登录系统运行良好。我可以从 1 个站点登录,然后转到其他站点并保持登录状态。
我将 2 个站点移至 Web 服务器(带有 IIS8.5 的 Windows 2012)并且共享会话不起作用。站点根本不共享会话。我在一个站点上设置了一个会话值并尝试在另一个站点上查看它,并且会话值返回为空。同样的测试页面也适用于 IIS7。
有谁知道为什么 IIS8.5 无法在 IIS7 上运行?
【问题讨论】:
-
会话 ID 存储在 cookie 中。默认情况下,由于安全原因,cookie 不能跨域共享,除非它们是子域。他们的网址是什么?
-
它们是子域。即:site1.domain.com & site2.domain.com
-
您使用的是哪种身份验证方法?你在使用 FormAuthentication 吗?
-
我解决了这个问题,我稍后会分享解决方案。
标签: asp.net session iis-7 session-state iis-8.5