Получение URL источника / реферера для регистрации пользователя - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть кусок кода, который я протестировал для простого кода регистрации пользователя:

   ReferrerURL = Request.UrlReferrer.AbsoluteUri

Это свойство устанавливается для пользователя, когда он регистрируется на сайте.

Например, если пользователь нажал на сайт с помощью какого-либо объявления, я хотел бы получить исходный сайт, откуда он пришел.

С этим фрагментом кода я получаю толькоURL моего собственного сайта, который выглядит следующим образом:

example.com/Registration

Независимо от того, откуда пришел пользователь ... Есть ли какой-либо другой способ получить эту информацию с того места, откуда он изначально пришел (если он доступен) - еслитогда просто оставьте это поле пустым ...

[ValidateAntiForgeryToken]
public async Task<ActionResult> DoRegister(UserRegistrationViewModel model)
{
    var user = new Users()
    {
       FirstName = model.FirstName,
       LastName = model.LastName,
       Email = model.Email,
       CountryId = 230,
       Active = false,
       PasswordSalt = salt,
       PasswordHash = PasswordHelper.CreatePasswordHash(model.Password, salt),
       GUID = _guid,
       HasSpecialSubscription = false,
       TotalScans = 0,
       IsFreeTrialExpired = false,
       DateOfRegistration = DateTime.Now,
       ReferrerId = referrerId,
       AffiliatePct = 0.15,
       Cycles = 3,
       ReferrerURL = Request.UrlReferrer.AbsoluteUri
    };
}

1 Ответ

0 голосов
/ 14 ноября 2018

Реферер - это заголовок, отправляемый браузерами, когда пользователь переходит на другую страницу, поэтому целевой сайт знает исходный сайт - если браузер настроен на его отправку (настройки конфиденциальности или плагины могут удалить заголовок) и если сайтыиспользуйте ту же схему (источники не отправляются при переходе с http на https или наоборот).

Но каждый клик сбрасывает реферрера на текущую страницу.Так что, если ваши пользователи работают так:

External Site -> Registration Page -> Registration POST Handler

Тогда в последнем случае рефералом будет ваша страница регистрации, а не адрес внешнего сайта.

Таким образом, вам нужно сохранить реферера на странице регистрации и перенаправить его к вашему действию POST.Вы можете сделать это в скрытом поле формы, или, сохранив его в сеансе или в файле cookie.У всех подходов есть свои плюсы и минусы.

...