Request.ServerVariables [" HTTP_REFERER"]。ToString()在IE11中不起作用

时间:2016-04-07 18:12:40

标签: c# asp.net internet-explorer-11

我有一个内部连接到第三方网站的基本页面。在此第三方网页上单击按钮时,我的网页将在另一个标签页中启动。

启动时,我会捕获上一页网址,以便我可以在之前的网址中获取某个ID。这在IE8到IE10上都运行良好 但是IE 11根本不会返回完整的URL。有人知道吗?

我已经尝试了以下所有的快乐,

Request.ServerVariables["HTTP_REFERER"].ToString()
ViewState["PreviousPageURL"] = Request.UrlReferrer;
Request.UrlReferrer.AbsoluteUri;
string urlName = Request.UrlReferrer.ToString();
System.IO.Path.GetFileName(Request.UrlReferrer.AbsolutePath);

提前感谢任何帮助。 非常感谢,

1 个答案:

答案 0 :(得分:1)

不要信任客户端 - 您不应该依赖于发送或正确的Referer标头。

特别是,谷歌搜索使用JavaScript技巧来阻止从搜索结果页面发送Referer标题 - 网站管理员不能再获取原始Google搜索页面地址(从查询字符串中提取搜索字词) ) - 表面上这是为了保护用户的隐私。

其他原因包括:

  • 用户的自定义隐私设置以禁用标题
  • 禁用标题
  • 的第三方安全软件(如Norton Internet Security)
  • 阻止标头
  • 的网络安全硬件,例如HTTP代理或公司防火墙
  • 浏览器扩展程序

据我所知,IE11不会改变Referer - 处理行为。

在您给出的代码示例中,最后4个示例都使用Request.Urlreferrer,所以当然它们都会返回相同的结果。