[英]How to redirect back if user did not get to page properly in C#?
我有一個videoWall和videoWallDetail頁面。 目前,這是我在videoWallDetail頁面上所擁有的:
if (String.IsNullOrEmpty(Request["video_id"])) Response.Redirect("videoWall.aspx");
用戶不應以這種方式進入詳細信息頁面,但是如果他們知道視頻ID,則有些用戶可能會通過在url中鍵入它直接進入詳細信息頁面,因此,如果用戶在其中輸入視頻ID,則會將用戶重定向回videoWall頁面。地址欄無效。 我的問題是,無論如何,我如何重定向回videoWall頁面。 如果用戶沒有單擊鏈接進入特定視頻的詳細信息頁面,則無論他們是否在地址欄中輸入有效的ID,他們都將被發回。
提前致謝!
您可以在videoWall.aspx
頁面上添加一個Session
以驗證它們是否來自該頁面:
videoWall.aspx
Session["fromVideoWall"] = true;
Response.Redirect("videoWallDetail.aspx?video_id=" + videoId.ToString());
videoWallDetail.aspx
if (Session["fromVideoWall"] != null && String.IsNullOrEmpty(Request["video_id"])) Response.Redirect("videoWall.aspx");
Session["fromVideoWall"] = null; //Setting the value back to null ensures the next access must have come from VideoWall.aspx too
1您可以使用PostBackUrl
方法
並在目標頁面中訪問PreviousPage
並獲取數據
鏈接: http : //asp-net-example.blogspot.fr/2008/10/postbackurl-example-how-to-submit-page.html
2您也可以使用HttpModule
重寫您的網址
如果不允許我僅在videoWallDetail頁面的查詢字符串中輸入一個已知ID,則不應將其公開為查詢字符串參數。 如果我想在頁面上添加書簽,或通過電子郵件向他人發送網址以直接轉到他們該怎么辦? 那些是不允許的嗎?
如果是這樣,則需要刪除該查詢字符串參數。 URL欄應該是讓用戶四處走走的完全合法的方式。 如果他們可以輸入URL進入頁面,那么他們不應沒有400或500錯誤,這是您作為開發人員的錯。
切換到使用會話變量或表單發布來確認它們是否來自正確的位置,如果它們確實不應該僅僅來自頁面A的情況下就不在頁面B上。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.