【发布时间】:2012-10-18 16:51:05
【问题描述】:
我正在使用ASP.Net cookieless sessions,以便通过 302 重定向将其放置在 URL 中来跟踪应用程序的会话 ID,例如,如果用户要访问以下 URL
http://yourserver/folder/default.aspx
然后它们将被重定向到类似于以下内容的 URL,然后继续提供实际页面内容
http://yourserver/folder/(S(849799d1-7ec0-41dc-962d-a77e1b958b99))/default.aspx
我遇到的问题是,应用程序的入口点实际上是一个静态页面(例如带有 .html 扩展名的页面),并且 ASP.Net 没有发出会话 ID & 为该页面重定向用户。 因此,这意味着指向 ASP.Net 托管内容的链接(例如链接、iframe 等)都会为每个链接创建一个新的会话 ID。出于兼容性原因,我无法轻松更改页面扩展名(尽管这确实解决了问题)。
如何提示 ASP.Net 为我的页面创建会话?我尝试添加显式处理程序映射以确保页面由 ASP.Net 模块处理,但这没有影响 - 在调试时我可以看到正在为此页面创建 SessionIDManager 实例(暗示不管我的处理程序映射如何,ASP.Net 已经通过集成管道处理此页面),但是 ASP.Net 仍然没有为此页面创建会话。
我使用的是 IIS 7,但这也需要在 IIS 6(带有显式处理程序映射)和 IIS 8 上工作。
【问题讨论】:
标签: asp.net iis-7 cookieless