0

セッションを使用して送信ページから受信ページに値を送信していますが、問題はありませんが、URLを覚えていて、受信ページを直接実行すると以前の情報が表示されますが、無効です....?

エンドユーザーが受信ページに直接アクセスする場合、そのようなメッセージを制限または提供する必要があります

どうすればこの問題を克服できますか........

これは私のコードです

send.aspx.cs

protected void gv_rowcommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "Select")
    {
        GridViewRow grow = (GridViewRow)(((LinkButton)e.CommandSource)).NamingContainer;

        Session["c"] = grow.Cells[0].Text;
        Session["s"] = grow.Cells[1].Text;
        Session["e"] = grow.Cells[2].Text;
        Session["t"] = grow.Cells[3].Text;
        Session["a"] = grow.Cells[4].Text;
        Response.Redirect("confirmation.aspx");

    }   
}

確認.aspx.cs

protected void Page_Load(object sender, EventArgs e)
{
    lblgetcourse.Text = Convert.ToString(Session["c"]);
    lblgetstartdate.Text = Convert.ToString(Session["s"]);
    lblgetenddate.Text = Convert.ToString(Session["e"]);
    lblgettimings.Text = Convert.ToString(Session["t"]);
    lblgetamount.Text = Convert.ToString(Session["a"]);
}
4

4 に答える 4

2

確認ページに値を表示したら、それらをセッションから削除できます。

Session.Remove("c");
...

これにより、確認ページに常にページからの新しいsend.aspx値が表示されるようになります。これらの値を表示する前に、セッション内にそれらの値が存在するかどうかを確認することもできます。

于 2013-10-29T08:16:20.600 に答える
1

確認ページで、セッション変数から値を取得して表示し、次のようにセッション変数をクリアします。

于 2013-10-29T08:19:40.433 に答える
0
protected void Page_Load(object sender, EventArgs e)
{
    if(Request.UrlReferrer.AbsolutePath == "~/send.aspx")
    {
        lblgetcourse.Text = Convert.ToString(Session["c"]);
        lblgetstartdate.Text = Convert.ToString(Session["s"]);
        lblgetenddate.Text = Convert.ToString(Session["e"]);
        lblgettimings.Text = Convert.ToString(Session["t"]);
        lblgetamount.Text = Convert.ToString(Session["a"]);
    }
    else
    {
        //do something
    }

}
于 2013-10-29T08:19:11.183 に答える
0

リファラーヘッダーを確認できます:

Request.UrlReferrer

リクエストの送信元を確認します。

したがって、page_load は次のようになります。

protected void Page_Load(object sender, EventArgs e)
{
  if (!Request.UrlReferrer=='...') Response.Redirect("~/login.aspx");
...
于 2013-10-29T08:18:37.540 に答える