6

如何获取上一页网址?

senario,用户可能来自 google、yahoo、bing。
如何知道它们来自哪里?

我尝试使用 Request.UrlReferrer
但它返回一个空值。

谢谢你的建议。

我正在使用 ASP.NET 网络表单,C#。

更新
我有一个网站正在运行。
我只想知道当用户访问我的网站时它们来自哪里。

4

1 回答 1

9

您所描述的是RefererHTTP 标头(最初是我们现在坚持使用的“Referrer”的拼写错误)。浏览器会使用导致用户导航到新页面的任何网页的 URI 填充此字段(例如通过单击<a>超链接、<form> 提交、Flash 对象中的操作等)。并非每个用户操作都会导致设置标题,例如,如果直接在地址栏中输入地址,或者在桌面电子邮件消息中打开链接。

在 ASP.NET 下,此标头可由Request.UrlReferrer属性访问。但是,如果 HTTP 标头值不是 URI 或客户端 UA 未设置该字段,则此属性将为 null。

您绝不能依赖此机制,因为它是由客户端设置的,并且您绝不能信任客户端 ( http://en.wikipedia.org/wiki/Defensive_programming )。如前所述,并非所有访问者都会设置 Referer 标头。

于 2013-01-21T03:49:27.003 回答