如果用户在C#中无法正确访问页面,如何重定向回页面?

如果用户在C#中无法正确访问页面,如何重定向回页面?,c#,.net,redirect,C#,.net,Redirect,我有一个视频墙和一个视频墙详细信息页面。目前,这是我在videoWallDetail页面上看到的内容: if (String.IsNullOrEmpty(Request["video_id"])) Response.Redirect("videoWall.aspx"); 用户不应以这种方式输入详细信息页面,但如果他们知道视频id,有些人可能会通过在url中键入该id直接进入详细信息页面,因此,如果用户在地址栏中输入无效的视频id,则这会将用户重定向回videoWall页面。我的问题是,

我有一个视频墙和一个视频墙详细信息页面。目前,这是我在videoWallDetail页面上看到的内容:

    if (String.IsNullOrEmpty(Request["video_id"])) Response.Redirect("videoWall.aspx");
用户不应以这种方式输入详细信息页面,但如果他们知道视频id,有些人可能会通过在url中键入该id直接进入详细信息页面,因此,如果用户在地址栏中输入无效的视频id,则这会将用户重定向回videoWall页面。我的问题是,无论如何,我如何重定向回videoWall页面。如果用户没有单击链接以访问特定视频的详细信息页面,则无论他们是否在地址栏中输入了有效id,他们都会被发回


提前谢谢

1您可以使用
PostBackUrl
方法

并在目标页面中访问
上一页
,获取数据

链接:

2您还可以使用
HttpModule


链接:

您可以在
videoWall.aspx
页面上添加
会话
,以验证它们是否来自该页面:

videoWall.aspx

Session["fromVideoWall"] = true;
Response.Redirect("videoWallDetail.aspx?video_id=" + videoId.ToString());
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
videoWallDetail.aspx

Session["fromVideoWall"] = true;
Response.Redirect("videoWallDetail.aspx?video_id=" + videoId.ToString());
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

如果不允许我只在videoWallDetail页面的查询字符串中输入一个已知ID,那么您不应该将其作为查询字符串参数公开。如果我想给页面添加书签,或者给某人发送一个URL供他们直接访问,该怎么办?这些是不允许的吗

如果是这样,则需要删除该querystring参数。URL栏应该是一种完全合法的用户访问方式。如果他们可以输入一个URL来访问一个页面,他们不应该没有400或500个错误,那么作为开发人员,这是你的错


切换到使用会话变量或表单帖子,以确认它们来自正确的位置,如果它们确实不应该出现在B页而不是a页。

有一些解决方案,但我知道的大多数都不是100%。你想对决心坚定的用户发动多少战争?为什么要重定向?404似乎是对无效视频id的更好响应。我不希望发生重大战争,但有时视频会更改或变得不活动。