ASP.NET(C#)用session判断用户是否登入
ASP.NET(C#)用session判断用户是否登入,并保存获取用户信息。若没登入过则跳到登入界面否则跳到用户界面这是我写的代码,请各位高手帮忙看看错在哪,为什么我运行...
ASP.NET(C#)用session判断用户是否登入,并保存获取用户信息。若没登入过则跳到登入界面否则跳到用户界面
这是我写的代码,请各位高手帮忙看看错在哪,为什么我运行时登入过了,仍然跳到登入界面?
protected void Page_Load(object sender, EventArgs e)
{
if (Session["userName"] != null)
{
string userName = Session["userName"].ToString();
string userType = Session["userType"].ToString();
if (userType == "admin")
{
mvMain.ActiveViewIndex = 1; //跳到用户界面
lbAdmin.Text = userName;
}
}
else
{
mvMain.ActiveViewIndex = 0; //跳到登入界面
}
protected void btnLogin_Click(object sender, EventArgs e)
{
if (userName == "admin" && userPWD == "admin")
{
lbAdmin.Text = userName;
mvMain.ActiveViewIndex = 1; //跳到用户界面
Session["userName"] = userName;
Session["userType"] = "admin";
Session.Timeout = 20;
Response.Redirect("default.aspx");
}
else
Response.Write("<script type='text/javascript'> alert('用户名/密码错误');</script>");
}
protected void LinkButton3_Click(object sender, EventArgs e) //用户界面返回登入界面
{
Session.Timeout = -1;
mvMain.ActiveViewIndex = 0;
} 展开
这是我写的代码,请各位高手帮忙看看错在哪,为什么我运行时登入过了,仍然跳到登入界面?
protected void Page_Load(object sender, EventArgs e)
{
if (Session["userName"] != null)
{
string userName = Session["userName"].ToString();
string userType = Session["userType"].ToString();
if (userType == "admin")
{
mvMain.ActiveViewIndex = 1; //跳到用户界面
lbAdmin.Text = userName;
}
}
else
{
mvMain.ActiveViewIndex = 0; //跳到登入界面
}
protected void btnLogin_Click(object sender, EventArgs e)
{
if (userName == "admin" && userPWD == "admin")
{
lbAdmin.Text = userName;
mvMain.ActiveViewIndex = 1; //跳到用户界面
Session["userName"] = userName;
Session["userType"] = "admin";
Session.Timeout = 20;
Response.Redirect("default.aspx");
}
else
Response.Write("<script type='text/javascript'> alert('用户名/密码错误');</script>");
}
protected void LinkButton3_Click(object sender, EventArgs e) //用户界面返回登入界面
{
Session.Timeout = -1;
mvMain.ActiveViewIndex = 0;
} 展开
4个回答
展开全部
大哥 ...你代码好乱啊////你改重新整理一下逻辑 首先 在登录按钮的点击事件里 你应该判断文本框的值 而不是判断username 和userpass 判断过了之后你再将用户信息存入Session中 再跳转页面 然后去用户界面的加载事件中判断Session的值
追问
userName是指用户名这一文本框,userPWD是指密码框,我已经判断了的: if (userName == "admin" && userPWD == "admin") ,这已经是我从写的代码中将与session有关的挑出来整理的 了,没办法,各位帮帮忙,麻烦了
追答
.....
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
userName是指用户名这一文本框,userPWD是指密码框,
判断应该这样写
if (userName.Text == "admin" && userPWD.Text== "admin")
但是你这样写VS2008居然不报错。
你在btnLogin_Click事件中和Page_Load事件中分别写了
mvMain.ActiveViewIndex = 1;
这个有一个就够了
判断应该这样写
if (userName.Text == "admin" && userPWD.Text== "admin")
但是你这样写VS2008居然不报错。
你在btnLogin_Click事件中和Page_Load事件中分别写了
mvMain.ActiveViewIndex = 1;
这个有一个就够了
更多追问追答
追问
老师要求普通用户登入用cookie保存,管理员登入用session保存,我普通用户也是这样判断的,最后成功了的,但session就是不行,老师讲的也是这么判断的
追答
userName真的是控件名称?
还是你定义的全局变量?
什么时候赋值的?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Session.Timeout = 20;
你设置的session的超时时间是20毫秒,20毫秒什么概念?瞬间
在你登录后的瞬间,session就过期了,所以自然登录状态丢失。
你设置的session的超时时间是20毫秒,20毫秒什么概念?瞬间
在你登录后的瞬间,session就过期了,所以自然登录状态丢失。
更多追问追答
追问
我之前没设置timeout时也出现了这种情况啊,这是为什么?
追答
你用的是Visual Studio吧?跟一下代码就知道了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-10-11
展开全部
建议最好不要用session记录登陆状态
追问
老师要求,我没得选择
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询