asp.netresponse.redirectreferrerhttp-referer

ASP.NET - Response.Redirect Not Populating Url Referrer


I feel like i've done this a ton of times, but i can't for the life of me figure out what is going wrong.

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("/");
}

If i type "/SingleSignOn.aspx" in the URL, it redirects to Default.aspx, but the referrer is null.

What am i missing here?

What im trying to do (this is a simplified example), is on any page, i will have some JavaScript to do the following:

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

Which, you guessed it, signs the user in, and redirects to the homepage.

But i need to build logic into that JavaScript to not redirect to the SingleSignOn.aspx page if we just came from there.

Does the referrer only get populated by actual link user clicks?

How can i do this then? I don't want to use QueryString because i dont want to see that in the URL.

The only other option i can think of is Session.

Please help. =(


Solution

  • So, i've done some Google'ing to find my answer.

    No thanks to Stack Overflow - kidding, =)

    So the URL Referrer is only populated by an actual client-click (anchor tag, button).

    Not when you manually put it in the URL (which is what my JavaScript is doing).

    The solution i am doing to have to with is to create a cookie on the SingleSignOn.aspx page, and read that cookie from the JavaScript before i redirect again.

    Just what i need, more cookies. =(

    Unless someone here has a better idea, that's what ill be going with.