Asp.net
ASP.NET - Response.Redirect 不填充 URL 引用
我覺得我已經做了很多次了,但我一輩子都無法弄清楚出了什麼問題。
預設.aspx:
protected void Page_Load(object sender, EventArgs e) { var r1 = Request.UrlReferrer; // null var r2 = Request.ServerVariables["HTTP_REFERRER"]; // null }單點登錄.aspx:
protected void Page_Load(object sender, EventArgs e) { Response.Redirect("/"); }如果我在 URL 中鍵入“/SingleSignOn.aspx”,它會重定向到 Default.aspx,但引用者為空。
我在這裡想念什麼?
我試圖做的(這是一個簡化的例子),在任何頁面上,我都會有一些 JavaScript 來執行以下操作:
window.location.replace('~/SingleSignOn.aspx');您猜對了,它讓使用者登錄並重定向到首頁。
但是如果我們剛從那裡來,我需要在該 JavaScript 中建構邏輯以不重定向到 SingleSignOn.aspx 頁面。
推薦人是否僅由實際的連結使用者點擊填充?
那我該怎麼做呢?我不想使用 QueryString,因為我不想在 URL 中看到它。
我能想到的唯一其他選擇是會話。
請幫忙。=(
所以,我做了一些Google搜尋來找到我的答案。
不,感謝 Stack Overflow - 開玩笑,=)
因此,URL Referrer 僅由實際的客戶端點擊(錨標記、按鈕)填充。
當您手動將其放入 URL 時(這是我的 JavaScript 正在做的),則不是。
我要做的解決方案是在 SingleSignOn.aspx 頁面上創建一個 cookie,並在我再次重定向之前從 JavaScript 中讀取該 cookie。
正是我需要的,更多的餅乾。=(
除非這裡有人有更好的主意,否則就是這樣。
現在已經很晚了,但是當您管理響應時。重定向內容,您可以將查詢參數用作
response.redirect("/?url=home.aspx&q=whatever").然後您可以在頁面載入或初始化時擷取它並採取適當的措施