gpt4 book ai didi

asp.net - session 变量被 Chrome 和 FF 击败

转载 作者:行者123 更新时间:2023-12-04 08:53:29 26 4
gpt4 key购买 nike

在页面加载的 asp.net Web 应用程序中,我获取当前页面 url 并将其存储在 session 变量中以跟踪用户所在的页面,以便他们在进入管理区域时可以返回到该页面,进行一些导航等。然后他们可以单击返回按钮,并会被带到他们在进入管理员之前所在的页面。

这一切都适用于 IE8;但是在 FF 和 Chrome 中,当在管理员中时,返回链接重定向到我为 Web 应用程序设置的自定义 404 页面。

出于测试目的,我在页面加载事件中添加了我在下面编写的代码:

Response.Write((string)Session["navurl"]);// displays "http://somedomain.com/customerror/default.aspx"
Session["navurl"] = currentUrl;//ex. currentUrl = "http://somedomain.com/contact/"
Response.Write((string)Session["navurl"]);//ex. currentUrl = "http://somedomain.com/contact/"

同样,这在 IE 中没有问题,但在页面加载的 FF 和 Chrome 中, session 变量显示 404 页面链接,并在设置后显示正确的链接。我使用 fiddler 来查看发生了什么,Chrome 在 favicon.ico 文件的 GET header 中抛出 404,我没有在此 Web 应用程序中使用它。

我在 site.master 文件和 Chrome 和 FF 的头部添加了 faviocon 文件和链接,现在可以正常工作;我仍然不确定为什么会发生这种情况。任何人都知道我的 Session 变量为什么或如何被 Chrome 或 FF 覆盖?

作为旁注,我已经完成了调试过程,currentUrl 是正确的 url。

最佳答案

好吧,如果您使用 .NET 处理程序来为所有页面(即所有文件扩展名)提供服务,那么当您的浏览器向 favicon.ico 发出请求(谷歌以了解这是什么)时,服务器失败是有道理的找到它,然后重定向到 404。这又将 Session 变量修改为“最后提供的页面”:404。

现在,当您呈现管理页面,并在 session 中查询“最后提供的页面”时,您会得到什么? “404”。

我建议在将其存储在 session 中之前检查 URL 以查看它是否指向用户可导航的页面

if (IsAUserPage(currentUrl)
Session["navurl"] = currentUrl;

关于asp.net - session 变量被 Chrome 和 FF 击败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4903846/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com