我正在编写一个用户可以登录其帐户的网站。
登录帐户后,用户可以更改他的秘密问题或答案。为此,他必须遍历三个页面:
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");
}