【发布时间】:2013-06-20 14:14:02
【问题描述】:
我正在编写一个用户可以登录其帐户的网站。
登录帐户后,用户可以更改他的秘密问题或答案。为此,他必须遍历三个页面:
1) 第一页要求用户输入密码,即使他已经登录。如果输入的密码被接受,则会创建一个名为 Edit_Secret_1 的会话,其内容为 Success。
2) 当第二个页面加载时,它会检查 Session Edit_Secret_1 的内容。如果它们为空,意味着用户通过地址栏导航到该页面,他将被重定向到 AccountManagement 页面。否则,会话 Edit_Secret_1 设置为空。这是为了防止用户在会话中更改一次秘密问题/答案后通过地址栏再次访问该页面。
3) 第三页显示一个简单的确认信息。我还没做呢。
这是第二页的截图:
现在秘密问题和秘密答案字段为空,因为我尚未对从数据库中检索数据的部分进行编码。
为了测试这些按钮,我编写了 Save Changes 按钮以重定向到 HomePage.aspx,而 Cancel 按钮应该重定向到 ContactUs.aspx。现在,当我单击这两个按钮中的任何一个时,我将被重定向到 AccountManagement.aspx。我知道问题与将 Session 设置为 null 有关,但我不知道如何解决它。有人可以帮忙吗?
代码如下:
protected void Page_Load(object sender, EventArgs e)
{
Label_Error.Visible = false;
if (Session["Username"] == null)
{
Response.Redirect("HomePage.aspx");
}
else
{
if (Session["Edit_Secret_1"] == null)
{
Response.Redirect("AccountManagement.aspx");
}
else
{
Session["Edit_Secret_1"] = null;
}
}
}
protected void Cancel_Click(object sender, EventArgs e)
{
Response.Redirect("ContactUs.aspx");
}
protected void Button_SaveChanges_Click(object sender, EventArgs e)
{
Response.Redirect("HomePage.aspx");
}
【问题讨论】:
标签: asp.net session redirect button