1

私のウェブサイトには、他のいくつかのページからアクセスできるページがあります。このページにはキャンセルボタンがあり、ユーザーがクリックすると、サーバー上でコードを実行して、元のページにリダイレクトします。

Request.UrlReferrerを参照してこれを実行しようとしましたが、ポストバックが発生すると、これは現在のページに設定されます。

セッション状態を使用した回避策を考え出しました。

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
          Session["referrer"] = Request.UrlReferrer.AbsoluteUri;
    }
}

btn_Cancel_click(object sender, EventArgs e)
{
    //Some other code and then the line below:
    Response.Redirect(Session["referrer"]);
}

しかし、セッション状態を使用せずにこれを行うためのより適切な方法があるかどうか知りたいです。誰かがこれに対するより良い解決策を提案できますか?

4

1 に答える 1

2

UrlReferrer多くのユーザーがブロックすることを選択できるため(そして、元の場所からの情報を提供しないため)、キャンセルでの返品に使用するのは安全ではありません。また、悪意のあるプログラムがそこにスパムサイトを配置することもあります。

正しい方法は、キャンセル時にどこに戻るかをページに指示するURLのパラメーターを使用することです。例:

http://www.yoursite.com/callpage.aspx?ref=/signin/
于 2013-02-21T23:13:45.717 に答える