我覺得我已經做了很多次,但我不能爲我的生活弄清楚什麼是錯誤的。ASP.NET - Response.Redirect不填充網址推薦人
的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」,它重定向到Default.aspx的,但引用者爲空。
我在這裏失蹤了什麼?
什麼我嘗試做(這是一個簡單的例子),是在任何網頁上,我會有一些JavaScript來做到以下幾點:
window.location.replace('~/SingleSignOn.aspx');
哪,你猜對了,簽署用戶,並重定向到主頁。
但我需要建立邏輯到該JavaScript不重定向到SingleSignOn.aspx頁面,如果我們剛剛從那裏。
引薦者是否只通過實際的鏈接用戶點擊來填充?
我該怎麼做呢?我不想使用QueryString,因爲我不想在URL中看到它。
我能想到的唯一的其他選項是Session。
請幫忙。 =(
好奇地知道你爲什麼要重定向java-script。你描述的場景,我會檢查服務器端(可能是基本頁面的OnInit),如果用戶驗證或不驗證,如果沒有,則重定向到這樣做的頁面。 – VinayC 2010-09-17 05:13:58
@VinayC - 它很複雜。基本上我在Facebook Connect應用程序上工作 - 頁面加載後,JavaScript讓我知道我能夠簽署他們,因此我重定向。我不知道我是否可以簽署他們,直到執行客戶端API。 – RPM1984 2010-09-17 05:22:44
那麼,你可以添加自己的cookie,當用戶通過身份驗證,然後從javacript,你可以看到cookie是否存在或不決定是否重定向。如果你不想使用cookie,那麼你的頁面(應該在基本頁面中完成)必須設置一些JS變量,如果用戶被認證。 cookie方法之間的區別在於cookie只需設置一次(在SingleSignOn.aspx中),而必須在每個頁面中設置js變量(因此邏輯應放置在公共基本頁面中)。 – VinayC 2010-09-17 05:29:35