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

发布于 2025-01-07 14:26:20 字数 669 浏览 0 评论 0原文

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

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

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

如果您在浏览器中输入 http://localhost/app 就会出现问题 - 请注意大小写的变化。

据我所知,URL 始终不区分大小写,但在本例中显然不区分大小写。经过一些测试,发现重要的因素是输入到浏览器中的 URL 必须与 iframe 上的 URL 具有完全相同的大小写。或者至少是两个 URL 之间的虚拟目录的大小写。

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

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

有没有其他人经历过这种情况,或者我可以更改 IE 配置吗?

谢谢,

I have an ASP.NET page hosted on IIS6 running in windows 2008 server. The page has two iframes both calling to pages within the same application.

When viewed in the browser (IE8, compat mode) the session gets lost within the iFrames.

IIS is setup with a virtual directory of "App", so the website is accessed via http://localhost/App.

The problem occurs if you type into the browser http://localhost/app - note the change of case.

As far as I was aware URLs are always case-insensitive, but in this instance it clearly in not. After some testing, it turns out that the important factor is that the URL typed into the Browser must have exactly the same casing as that of the URL on the iframe. Or at least the casing of the virtual directory between the two URLs.

So a simple fix is to make sure you always use exactly the same url casing in the browser as is used on the Virtual Directory, but this is a bit difficult with users.

I've thought about rewriting the URL and doing some string manipulation to make the URL of the iFrame match that of the browser, but it seems a bit hacky and potentially unreliable.

Has anyone else experienced this or is there are simply IE config I can change?

Thanks,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

对你而言 2025-01-14 14:26:20

网址区分大小写。这是 IIS 和 IIS。 ASP.NET 在处理请求 url 时不区分大小写,但您所看到的 cookie 路径的区分大小写对于您使用的任何浏览器都应该如此。这不是你应该改变的事情。

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

Urls are case sensitive. It's IIS & ASP.NET that are not case sensitive when handling request urls, but the case sensitivity you're seeing for cookie paths should be true for any browser you use. This is not something you're supposed to change.

A workaround would be to redirect requests with a wrongly cased url to the correct one. You could write an IHttpModule for this, or, if you're using IIS7, use the optional Application Request Routing module.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文