【发布时间】:2014-07-01 05:07:29
【问题描述】:
我有 3 个用户,并为他们提供了一个登录页面。当用户登录时,用户将被定向到他们尊重的页面。但是当用户单击浏览器的后退按钮时的问题,他们不应该被允许访问页面而无需再次提供登录凭据。 LoginPage.cs
protected void bLogin_Click(object sender, EventArgs e)
{
datatable = methodobj.getData("select regd_no, pword,user_type from stu_info where regd_no='" + tbUName.Text + "'and pword='" + tbPword.Text + "' ");
if (datatable.Rows.Count >= 1)
{
if (string.Compare(Convert.ToString(datatable.Rows[0][0]), tbUName.Text, false) == 0 &&
string.Compare(Convert.ToString(datatable.Rows[0][1]), tbPword.Text, false) == 0)
{
Session["loginstatus"] = true;
if (datatable.Rows[0]["user_type"].ToString() == "admin")
{
Session["regd_no"] = Convert.ToString(updtkitable.Rows[0]["regd_no"]);
Response.Redirect("~/aHome.aspx");
}
if (datatable.Rows[0]["user_type"].ToString() == "students")
{
Session["regd_no"] = Convert.ToString(updtkitable.Rows[0]["regd_no"]);
Response.Redirect("~/RandomPassword.aspx");
}
if (datatable.Rows[0]["user_type"].ToString() == "teacher")
{
Session["regd_no"] = Convert.ToString(updtkitable.Rows[0]["regd_no"]);
Response.Redirect("~/subMark.aspx");
}
}
else
{
lbStatus.Text = "**Login fail. Incorrect UserId or Password.";
}
}
else
{
lbStatus.Text = "**Login fail. Incorrect UserId or Password.";
}
}
AdminMasterPage.cs
protected void Page_Load(object sender, EventArgs e)
{
Response.Cache.SetNoStore();
if (Session["loginstatus"] == null)
{
Response.Redirect("~/login.aspx");
}
else if (!Convert.ToBoolean(Session["loginstatus"]))
{
Response.Redirect("~/login.aspx");
}
else if (Session["user_type"] != "admin")
{
Response.Redirect("~/login.aspx");
}
【问题讨论】:
-
如果您想阻止用户在不重新登录的情况下访问特定页面,那么您不应该存储会话。对吗?