ASP.NET - Response.Redirect не заполняет URL-реферер - PullRequest
12 голосов
/ 17 сентября 2010

Мне кажется, что я делал это много раз, но я не могу понять, что происходит не так.

Default.aspx:

protected void Page_Load(object sender, EventArgs e)
{
   var r1 = Request.UrlReferrer; // null
   var r2 = Request.ServerVariables["HTTP_REFERRER"]; // null
}

SingleSignOn.aspx:

protected void Page_Load(object sender, EventArgs e)
{
   Response.Redirect("/");
}

Если я наберу "/SingleSignOn.aspx" в URL, он будет перенаправлен на Default.aspx, но ссылающийсяis null.

Что мне здесь не хватает?

Что я пытаюсь сделать (это упрощенный пример), на любой странице, у меня будет немного JavaScript, чтобы сделать следующее:

window.location.replace('~/SingleSignOn.aspx');

Который, как вы уже догадались, регистрирует пользователя и перенаправляет на домашнюю страницу.

Но мне нужно встроить логику в этот JavaScript, чтобы не перенаправлять на страницу SingleSignOn.aspx, еслимы только что пришли оттуда.

Реферер заполняется только фактическими кликами пользователя по ссылке?

Как я могу это сделать тогда?Я не хочу использовать QueryString, потому что не хочу видеть это в URL.

Единственный другой вариант, который я могу придумать, это Session.

Пожалуйста, помогите.= (

Ответы [ 2 ]

9 голосов
/ 17 сентября 2010

Итак, я поработал с Google, чтобы найти мой ответ.

Нет, благодаря переполнению стека - шучу, =)

Таким образом, URL Referrer заполняется только фактическим кликом клиента (тег привязки, кнопка).

Не, когда вы вручную указываете его в URL (что и делает мой JavaScript).

Решение, с которым я сталкиваюсь, заключается в создании файла cookie на странице SingleSignOn.aspx и считывании этого файла cookie из JavaScript перед повторным перенаправлением.

Как раз то, что мне нужно, больше печенья. = (

Если у кого-то здесь нет лучшей идеи, вот с чем я буду идти.

0 голосов
/ 17 сентября 2010

Просто догадка, но попробуйте вместо этого использовать абсолютный URL / включая даже http: // part.

Тем не менее, вы не должны полагаться на UrlReferrer, так как он может быть удален со стороны клиента (надстройками, не уверен, если даже некоторые конфигурации браузера).

...