【问题标题】:How can I get https referrer URL [duplicate]我如何获得 https 引荐来源网址 [重复]
【发布时间】:2015-07-06 11:11:34
【问题描述】:

我在我的项目中使用代码HttpContext.Current.Request.UrlReferer ?? (Object)).ToString() 从我的托管应用程序中获取引荐来源网址。

当我从 HTTP 页面重定向时,我能够获取 URL,但如果我从 HTTPS 页面重定向,那么我得到一个空值,我怎样才能让 UrlReferrer 为 HTTPS 工作?

【问题讨论】:

  • @ChaitanyaGadkari 不要使用inline code 来突出显示随机术语。
  • 未发送推荐人,如Is HTTP header Referer sent when going to a http page from a https page? 中所述。无论如何,您都不应该在引荐来源网址上构建您的应用程序逻辑,因为某些浏览器、用户或插件可以完全禁用引荐来源网址。使用推荐人解释您试图解决的问题;也许有更好的解决方案。

标签: c# https referrer


【解决方案1】:

这种行为是设计使然。不应为 SSL 请求发送 URLReferrer 标头。见:

http://www.w3.org/Protocols/rfc2616/rfc2616-sec15.html#sec15.1.3

"如果引用页面是使用安全协议传输的,则客户端不应在(非安全)HTTP 请求中包含 Referer 标头字段。"

因此,在您的情况下 HttpContext.Current.Request.UrlReferrer 将为 null 并且如果未发送有关 urlreferrer 的信息,那么您确实无能为力,也许您可​​以只使用 HttpContext.Current.Request .Url.Host

【讨论】:

  • 谢谢@StackTrace Current 也不会工作
  • 我们现在也在保护其他站点,因此不会出现任何通信问题。感谢您的帮助:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-04
  • 2012-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多