2012-02-20 32 views
0

我有一个运行在Windows 2008服务器上的IIS6上托管的ASP.NET页面。该页面具有两个调用同一应用程序中的页面的iframe。会话在iframe中丢失,区分大小写的url(IE8)

在浏览器(IE8,compat模式)中查看时,会话在iFrame内丢失。

IIS设置为“App”的虚拟目录,因此可通过http://localhost/App访问该网站。

如果您在浏览器中键入http://localhost/app,则会出现问题 - 请注意情况的更改。

据我所知道的URL总是不区分大小写,但在这种情况下,它显然不是。经过一些测试后发现,重要的因素是输入浏览器的URL必须与iframe上的URL完全相同。或者至少是两个URL之间的虚拟目录的外壳。

因此,一个简单的解决方法是确保您始终在浏览器中使用与虚拟目录中使用的URL完全相同的外壳,但这对用户来说有点困难。

我想过重写URL并做一些字符串处理来使iFrame的URL匹配浏览器的URL,但它看起来有点冒险和可能不可靠。

有没有其他人经历过这个,或者有简单的IE配置我可以改变?

谢谢,

回答

1

的url 区分大小写。它是IIS & ASP.NET在处理请求URL时不区分大小写,但是您看到的Cookie路径的大小写敏感性应该适用于您使用的任何浏览器。这不是你应该改变的。

解决方法是将错误装箱的URL重定向到正确的请求。你可以为此写一个IHttpModule,或者如果你使用的是IIS7,可以使用可选的应用程序请求路由模块。