0

videoWall と videoWallDetail ページがあります。現在、これは私が videoWallDetail ページに持っているものです:

    if (String.IsNullOrEmpty(Request["video_id"])) Response.Redirect("videoWall.aspx");

ユーザーはこの方法で詳細ページに入るべきではありませんが、ビデオ ID を知っている場合は、URL に入力して詳細ページに直接アクセスする人もいるかもしれません。無効なアドレス バー。私の質問は、関係なく videoWall ページにリダイレクトする方法です。ユーザーがリンクをクリックして特定の動画の詳細ページに移動しない場合、アドレス バーに有効な ID を入力しても、ユーザーは送り返されます。

前もって感謝します!

4

3 に答える 3

1

ページに を追加しSessionて、そのvideoWall.aspxページからのものであることを確認できます。

ビデオウォール.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
于 2012-09-25T14:30:04.260 に答える
0

1PostBackUrlメソッドを使用できます

そして、ターゲットページでデータにアクセスしPreviousPageて取得します

リンク: http://asp-net-example.blogspot.fr/2008/10/postbackurl-example-how-to-submit-page.html

2 URLを次のように書き換えることもできますHttpModule

リンク : http://msdn.microsoft.com/en-us/library/ms972974.aspx

于 2012-09-25T14:28:09.260 に答える
0

videoWallDetail ページのクエリ文字列に既知の ID を入力することだけが許可されていない場合は、それをクエリ文字列パラメーターとして公開しないでください。ページをブックマークしたり、誰かに直接アクセスできるように URL をメールで送信したりしたい場合はどうすればよいですか? それらは許可されていませんか?

その場合は、そのクエリ文字列パラメーターを削除する必要があります。URL バーは、ユーザーが移動するための完全に合法的な方法であるべきです。URL を入力してページにアクセスできる場合、400 または 500 エラーが発生しないといけません。それは開発者としてのあなたの責任です。

セッション変数またはフォーム投稿の使用に切り替えて、ページ A から来たばかりではなく、ページ B にあるべきではない場合、適切な場所から来ていることを確認します。

于 2012-09-25T15:49:00.817 に答える