Мне кажется, что я сделал это много раз, но я не могу для жизни меня выяснить, что происходит не так.ASP.NET - Response.Redirect Not Population Url Referrer
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, но ссылочный номер равен нулю.
Что мне здесь не хватает?
Что им пытается сделать (это упрощенный пример), на любой странице, я буду иметь некоторые JavaScript, чтобы сделать следующее:
window.location.replace('~/SingleSignOn.aspx');
Который, как вы уже догадались, подписывает пользователь, и перенаправляет на домашнюю страницу.
Но мне нужно построить логику в этом JavaScript, чтобы не перенаправлять страницу SingleSignOn.aspx, если мы только что пришли оттуда.
Включает ли реферер только фактические ссылки пользователя?
Как я могу это сделать? Я не хочу использовать QueryString, потому что я не хочу видеть это в URL-адресе.
Единственный другой вариант, о котором я могу думать, - это сеанс.
Пожалуйста, помогите. = (
Любопытно узнать, почему вы перенаправляете из java-script. Сценарий, который вы описываете, я бы проверял на стороне сервера (возможно, OnInit базовой страницы), если пользователь аутентифицирован или нет. Если нет, то перенаправление на страница, которая делает это. – VinayC
@VinayC - это сложно.В основном я работаю над приложением Facebook Connect - после загрузки страницы javascript позволяет мне знать, что я могу их подписать, поэтому я перенаправляю. Я не знаю, могу ли я подписать их до тех пор, пока не будут выполнены API-интерфейсы на стороне клиента. – RPM1984
Ну, вы можете добавить свой собственный файл cookie, когда пользователь будет аутентифицирован, а затем из javacript, вы можете увидеть, существует ли файл cookie или нет, чтобы решить, нужно ли перенаправлять или нет. Если вы не хотите использовать cookie, тогда ваши страницы (должны быть сделаны на базовой странице) должны установить некоторую переменную JS, если пользователь аутентифицирован. Разница между подходом cookie заключается в том, что cookie необходимо установить только один раз (в SingleSignOn.aspx), в то время как переменная js должна быть установлена на каждой странице (следовательно, логика должна быть помещена на общую базовую страницу). – VinayC