在我网站上的页面之间切换时,我丢失了 ASP.NET_SessionId。该问题发生在 Chrome/Firefox/Safari 中。它不会发生在 IE 中。这很奇怪......这是我的场景。
我的网站可以通过在浏览器中输入 www.example.org 或 example.org 来访问(这是您将看到的重要信息)。
我输入 example.org。从我的主页,我登录到我的站点(注意:我没有使用 ASP.NET 表单身份验证)。我被发送到我的默认用户页面(例如,userpage.aspx)。在此页面上,我单击一个<a>
将我发送到我网站上不同页面的页面。该<a>
链接是完全限定的(例如,http ://www.example.org/page2.aspx )。当我被发送到新页面时,我的会话丢失了!
所以,我运行 Fiddler 来尝试发现问题。我发现很有趣。请求标头标记引用者在页面之间丢失。
以下是步骤:
- 转到 example.org。
- 登录到 example.org。
- 我被重定向到 userpage.aspx。推荐人是http://example.org。已设置 ASP.NET_SessionId。
- 我点击
<a>
(例如,http ://www.example.org/page2.aspx )。呈现页面后,ASP.NET_SessionId 将丢失。
丢失的 ASP.NET_SessionId 始终丢失是 Chrome/Firefox/Safari。这在 IE 中不会发生。
如果通过将 example.org 替换为 www.example.org 来重复上述步骤,则 ASP.NET_SessionId 不会丢失。它每次都能正常工作。
对这种行为有什么想法吗?