我有下面的代码来检查查询字符串并没有改变:检查查询字符串并没有改变
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");
}
现在的问题有两个:
1)如果我更改查询字符串中的网址,然后点击按钮,用户不是redi修改为错误页面。 2)如果我更改URL中的查询字符串并在地址栏中输入,则用户不会重定向到错误页面。
我想要的基本上是,当用户重定向到网页时,它将查询字符串保存到会话中。如果用户在地址栏中更改查询字符串的值,并按下地址栏中的回车键或按下我的按钮,他将被重定向到错误页面。
但是,我的代码失败。任何人都可以帮忙吗?谢谢:)
您是否使用调试器来遍历代码并查看哪些条件逻辑已经或未发生? –
谢谢:)我正在调试程序。 – Matthew