注册 登录
编程论坛 ASP.NET技术论坛

[求助]关于Session登陆的问题

重在参与 发布于 2007-07-30 16:52, 535 次点击

我这里已经判断Session了,可是我在地址栏输入网址,为什么还能直接进去呢
protected void Page_Load(object sender, EventArgs e)
{
if (Session["userId"] != null)
{
DataSet ds = new DataSet();
db.RunSQL("select userName from Users where userId='" + Session["userId"] + "'", ref ds, "Users");
userName.Text = ds.Tables["Users"].Rows[0][0].ToString();
}
else
{
Response.Redirect("~/back/login.aspx");
}
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
Session.Remove("userId");
Session.RemoveAll();

Response.Redirect("~/back/login.aspx");

}

3 回复
#2
jyoseyi2007-07-30 17:45

在login.aspx 的 page_load中你判断存在session了吗?
存在就打开该页面
否则Response.Redirect(登陆页面)

#3
川流不息2007-07-30 20:55
设断点看一下嘛。是不是真的没值了,或是你判断不到位也说不定。
#4
sean882007-07-31 11:14
以下是引用重在参与在2007-7-30 16:52:48的发言:

我这里已经判断Session了,可是我在地址栏输入网址,为什么还能直接进去呢
protected void Page_Load(object sender, EventArgs e)
{
if (Session["userId"] != null)
{
DataSet ds = new DataSet();
db.RunSQL("select userName from Users where userId='" + Session["userId"] + "'", ref ds, "Users");
userName.Text = ds.Tables["Users"].Rows[0][0].ToString();
}
else
{
Response.Redirect("~/back/login.aspx");
}
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
Session.Remove("userId");
Session.RemoveAll();

Response.Redirect("~/back/login.aspx");

}

说明Session变量还保留着,没有清除,可以在LinkButton1_Click事件里这样写清除Session
protected void LinkButton1_Click(object sender, EventArgs e)
{
Session.Clear();

Response.Redirect("~/back/login.aspx");

}

1