簡體   English   中英

如果用戶在C#中無法正確訪問頁面,該如何重定向回去?

[英]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重寫您的網址

鏈接: http//msdn.microsoft.com/en-us/library/ms972974.aspx

如果不允許我僅在videoWallDetail頁面的查詢字符串中輸入一個已知ID,則不應將其公開為查詢字符串參數。 如果我想在頁面上添加書簽,或通過電子郵件向他人發送網址以直接轉到他們該怎么辦? 那些是不允許的嗎?

如果是這樣,則需要刪除該查詢字符串參數。 URL欄應該是讓用戶四處走走的完全合法的方式。 如果他們可以輸入URL進入頁面,那么他們不應沒有400或500錯誤,這是您作為開發人員的錯。

切換到使用會話變量或表單發布來確認它們是否來自正確的位置,如果它們確實不應該僅僅來自頁面A的情況下就不在頁面B上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM