2013-01-21 36 views
5

Cách nhận url trang trước?Nhận URL trang trước

senario, người dùng có thể đến biểu mẫu google, yahoo, bing.
cách biết họ đến từ đâu?

tôi thử sử dụng Request.UrlReferrer
nhưng trả về giá trị null.

cảm ơn lời khuyên.

Tôi đang sử dụng biểu mẫu web ASP.NET, C#.

Cập nhật
Tôi có một trang web đang hoạt động.
Tôi chỉ muốn biết rằng từ đâu họ đến từ khi người dùng truy cập vào trang web của tôi.

+3

Bạn có chắc chắn rằng yêu cầu thực sự có liên kết giới thiệu không? ví dụ Người dùng nhập theo cách thủ công URL. –

+0

@AustinBrunkhorst Tôi có một trang web đang hoạt động. Tôi chỉ muốn biết rằng từ đâu họ đến từ khi người dùng truy cập vào trang web của tôi. – alont

+2

Tôi hiểu điều đó, nhưng tôi đang nói nếu không có một liên kết giới thiệu, nó sẽ là rỗng. –

Trả lời

8

Nội dung bạn mô tả là tiêu đề HTTP Referer (ban đầu là lỗi chính tả của "Liên kết giới thiệu" mà chúng tôi hiện đang bị mắc kẹt). Trình duyệt điền trường này bằng URI của bất kỳ trang web nào khiến người dùng điều hướng đến một trang mới (chẳng hạn như bằng cách nhấp vào liên kết <a>, gửi <form>, hành động trong đối tượng Flash, v.v.). Không phải mọi hành động của người dùng đều sẽ khiến tiêu đề được đặt, chẳng hạn như nếu một địa chỉ được nhập trực tiếp vào thanh địa chỉ hoặc nếu một liên kết được mở trong thông điệp email trên máy tính để bàn.

Trong ASP.NET tiêu đề này có thể truy cập bởi thuộc tính Request.UrlReferrer. Tuy nhiên, thuộc tính này sẽ bị vô hiệu nếu giá trị tiêu đề HTTP không phải là URI hoặc nếu trường không được UA khách hàng đặt.

Bạn không bao giờ phải phụ thuộc vào cơ chế này vì nó được đặt bởi khách hàng và bạn không bao giờ phải tin tưởng khách hàng (http://en.wikipedia.org/wiki/Defensive_programming). Và như đã nêu, không phải tất cả khách truy cập sẽ có bộ tiêu đề Người giới thiệu.

+1

Điều đáng nói là người giới thiệu thường được xem là mối quan tâm về quyền riêng tư, vì vậy các bộ bảo mật internet thường sẽ bỏ trống dữ liệu người giới thiệu. –

Các vấn đề liên quan