2013-01-21 42 views
5

如何獲取上一頁的網址?獲取上一頁Url

塞納里奧,用戶可能出現的形式谷歌,雅虎,必應。
如何知道它們來自哪裏?

我嘗試使用Request.UrlReferrer
但它返回一個空值。

感謝您的意見。

我使用ASP.NET Web窗體,C#。

更新
我有一個網站正在運行。
我只想知道,當用戶訪問我的網站時,他們從哪裏來。

+3

你確定請求實際上有一個referrer嗎?恩。用戶手動輸入URL。 –

+0

@AustinBrunkhorst我有一個網站正在運行。 我只想知道,當用戶訪問我的網站時,他們從哪裏來。 – alont

+2

我明白,但是我說如果沒有引用者,它將爲空。 –

回答

8

你描述什麼是Referer HTTP標頭(原爲「推薦人」是我們現在堅持的拼寫錯誤)。瀏覽器填充導致用戶導航到一個新頁面的所有網頁的URI這個領域(如通過點擊<a>超鏈接,<form>提交,在Flash對象中的動作等)。並非每個用戶操作都會導致設置標題,例如地址是直接輸入到地址欄中,還是在桌面電子郵件中打開鏈接。

在ASP.NET這頭是由Request.UrlReferrer屬性訪問。但是,如果HTTP標頭值不是URI或客戶端UA未設置此字段,則此屬性將爲空。

你絕不能依靠這種機制,因爲它是由客戶端設置,你必須永遠不要相信客戶端(http://en.wikipedia.org/wiki/Defensive_programming)。如前所述,並非所有訪問者都會擁有Referer頭文件集。

+1

值得一提的是,引用者往往被視爲隱私問題,因此互聯網安全套件通常會使引用者數據空白。 –