クエリ文字列が変更されていないことを確認する次のコードがあります。
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
Label_Error.Visible = false;
string query_string = Request.QueryString["GUID"].ToString();
Session["GUID"] = query_string;
}
else
{
string GUID = "";
try
{
GUID = Session["GUID"].ToString();
}
catch (Exception)
{
Session.Abandon();
Response.Redirect("CheckOutErrorPage.htm");
return;
}
if (GUID.Equals(Request.QueryString["GUID"].ToString()) == false)
{
Session.Abandon();
Response.Redirect("CheckOutErrorPage.htm");
}
}
}
ここで、ボタンクリック イベント ハンドラーに次のコードを追加して、クエリ文字列の値が (再び) 変更されていないことを確認します。
protected void ImageButton_LogIn_Click(object sender, ImageClickEventArgs e)
{
Validation val = new Validation();
string GUID = "";
string query_string = "";
try
{
GUID = Session["GUID"].ToString();
query_string = Request.QueryString["GUID"].ToString();
}
catch (Exception)
{
Session.Abandon();
Response.Redirect("CheckOutErrorPage.htm");
return;
}
if (val.EmptyString(GUID) == true || val.checkTransactionGUIDExists(GUID) == false || GUID.Equals(query_string) == false)
{
Session.Abandon();
Response.Redirect("CheckOutErrorPage.htm");
}
さて、問題は次の 2 つです。
1) URL のクエリ文字列を変更してボタンをクリックすると、ユーザーはエラー ページにリダイレクトされません。
2) URL のクエリ文字列を変更してアドレス バーで Enter キーを押すと、ユーザーはエラー ページにリダイレクトされません。
私が基本的に望んでいるのは、ユーザーが Web ページにリダイレクトされたときに、クエリ文字列をセッションに保存することです。ユーザーがアドレス バーのクエリ文字列の値を変更し、アドレス バーで Enter キーを押すか、マイ ボタンを押すと、エラー ページにリダイレクトされます。
ただし、私のコードは失敗しています。誰でも助けてもらえますか?ありがとう :)