使用区分大小写的URL(IE8)在iframe中丢失会话

时间:2012-02-20 10:15:41

标签: asp.net session iframe internet-explorer-8

我在Windows 2008服务器上运行的IIS6上托管了一个ASP.NET页面。该页面有两个iframe,它们都调用同一个应用程序中的页面。

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

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

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

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

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

我考虑过重写URL并进行一些字符串操作以使iFrame的URL与浏览器的URL相匹配,但它似乎有点hacky并且可能不可靠。

有没有其他人经历过这个或者只是IE配置我可以改变吗?

谢谢,

1 个答案:

答案 0 :(得分:1)

Urls 区分大小写。这是IIS&处理请求URL时不区分大小写的ASP.NET,但对于您使用的任何浏览器,您对cookie路径的区分大小写应该是正确的。这不是你应该改变的。

一种解决方法是将带有错误引用网址的请求重定向到正确的网址。您可以为此编写IHttpModule,或者,如果您使用的是IIS7,则使用可选的Application Request Routing模块。