【发布时间】:2012-12-30 04:33:01
【问题描述】:
我有一个旧的 ASP.NET 应用程序。它从 NET 2 转换为 net 4。 它使用状态服务器会话。
有时,应用会打开一个新页面(在新的浏览器选项卡中:link target = "_blank")
但在返回调用页面(选项卡)后,我发现会话已重置,因此不再使用当前用户,应用程序重定向到登录页面。实际上,SessionID 保持不变,但 IsSessionNew 设置为 true,并且 session 中没有设置任何变量。
该应用不使用 Session.Abort 或 Session.Clear。
即使我将会话更改为 InProc,并将链接的目标更改为 _top 或 _self,或完全删除,同样的事情也会发生 - 会话已重置。
这是 web.config 中的会话设置(或者我使用了 StateServer,但结果相同)
<sessionState timeout="432000" cookieless="UseCookies" mode="InProc"/>
知道是什么原因造成的吗?
谢谢。
【问题讨论】:
-
会话 cookie 可能使用了错误的路径。使用浏览器调试器检查流量(尤其是发送和接收的 cookie)。
-
将
domain也放在参数上,不带www。您的域。 -
@Lucero - 你能告诉我更多细节如何做到这一点吗?谢谢
-
@Aristos - 你能告诉我更多细节如何做到这一点吗?谢谢
-
不,我不能 - 这取决于您使用的浏览器。
标签: asp.net .net session session-state