这是场景,用户从我们的 WebApp 中打开非安全页面,我们称之为 PageA,在他们的浏览器中,然后单击其中的链接,将他们带到 PageB 的安全实例。一旦进入 PageB,用户随后可以单击一个链接,将他们带回到 PageA 的安全实例(他们已经查看并在 OutputCache 中)。我观察到,即使在访问 PageB(安全的)之后通过不同的 URL 访问 PageA,它实际上是在拉取先前缓存的副本,而不是制作一个新的副本。我在调试会话中验证了这种行为,并且惊讶于 ASP.Net 使用相同的 OutputCache 项来获取页面的安全副本。
我的问题是为什么会这样?以及如何告诉 ASP.Net OutPutCache 将来自安全 URL 的访问视为与非安全等效项不同/唯一的项目?
[背景]
我们最近将我们的网站图像切换为对所有图像使用 Scene7/Akamai。因此,我们添加了代码以在通过安全连接查看给定页面时使用不同的 Scene7 url。此 OutputCache 问题不允许执行输出安全 url 的逻辑,并导致丑陋的浏览器警告。