ASP.NET - Response.Redirect Не заполняющий URL-адрес
Я чувствую, что делал это много раз, но я не могу для жизни меня понять, что происходит не так.
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, но реферер имеет значение null.
Что мне здесь не хватает?
Что я пытаюсь сделать (это упрощенный пример), есть на любой странице, у меня будет JavaScript, чтобы сделать следующее:
window.location.replace('~/SingleSignOn.aspx');
Что, как вы догадались, подписывает пользователя и перенаправляет на домашнюю страницу.
Но мне нужно построить логику в этом JavaScript, чтобы не перенаправлять страницу SingleSignOn.aspx, если мы только что пришли оттуда.
Указывает ли только, что реферер заполняется фактическими щелчками пользователя ссылки?
Как я могу это сделать? Я не хочу использовать QueryString, потому что я не хочу видеть это в URL.
Единственный другой вариант, о котором я могу думать, - это сеанс.
Пожалуйста, помогите. = (
Ответы
Ответ 1
Итак, я сделал некоторое Google'ing, чтобы найти свой ответ.
Нет, спасибо Qaru - kidding, =)
Таким образом, URL Referrer заполняется только фактическим кликом (якорный тег, кнопка).
Не когда вы вручную помещаете его в URL-адрес (это то, что делает мой JavaScript).
Решение, с которым я столкнулся, состоит в том, чтобы создать файл cookie на странице SingleSignOn.aspx и прочитать этот файл cookie из JavaScript, прежде чем перенаправить его снова.
Просто то, что мне нужно, больше куки. = (
Если кто-то здесь не имеет лучшего представления, что с ним будет плохо.
Ответ 2
Просто догадайтесь, но попробуйте использовать абсолютный url вместо/включая даже часть http://.
Тем не менее, вы не должны полагаться на UrlReferrer от того, чтобы быть там, так как его можно удалить с клиентской стороны (добавками, не уверенными даже в некоторых конфигурациях браузера).