我是在学习用C#开发.NET网站,正在做登录程序。
我这样做:用户登录成功后,同时创建session和cookie(当然cookie是在用户选择保留登录状态的情况下才创建),测试下来,session和cookie创建均成功,并且session变量在个人中心页面的程序调用中都完全正常。
关于cookie,我只是创建好,然后通过Response.write来输出获取的cookie各项值,显示是正确。
怎样做才能像百度和CSDN那样,如果你登录时选择保留登录状态,以后,无论你从哪个页面进入都会显示你的登录状态,应该是自动登录的。
1、是不是只要读取到cookie不为空就自动登录呢?还是要再次到数据库核对用户名和密码是否吻合才自动登录?我觉得如果是查数据库来核对好像是画蛇添足了吧。
2、如何用cookie自动登录呢?最好是提供一个示例。真心谢谢各位了!
我这样做:用户登录成功后,同时创建session和cookie(当然cookie是在用户选择保留登录状态的情况下才创建),测试下来,session和cookie创建均成功,并且session变量在个人中心页面的程序调用中都完全正常。
关于cookie,我只是创建好,然后通过Response.write来输出获取的cookie各项值,显示是正确。
怎样做才能像百度和CSDN那样,如果你登录时选择保留登录状态,以后,无论你从哪个页面进入都会显示你的登录状态,应该是自动登录的。
1、是不是只要读取到cookie不为空就自动登录呢?还是要再次到数据库核对用户名和密码是否吻合才自动登录?我觉得如果是查数据库来核对好像是画蛇添足了吧。
2、如何用cookie自动登录呢?最好是提供一个示例。真心谢谢各位了!
2.cookie应该到服务器验证,最好能加密
1、你使用session和cookie两种机制来保留你的登录信息,首先你要明白他们的区别
session是在服务器上登记的,而cookie是客户机上登记的,你要解决的问题是如果用户选择保留登录状态后,下次就不用登录或者说自动登录,当然cookie你也可以让用户去选择它的生命周期2、在明确了你的问题后,我们要明确 session 是你用于验证系统的标识,而cookie是将来再次登陆的凭证
3、所以用户选择保留登录状态后你就把登录信息存储到了cookie中,这时你就可以不用管cookie了,你去判断session就好了,当session超期或者销毁后,用户再次访问系统是 cookie 就有用了,明确地说这时cookie是生产session的凭证了。你判断session没有了,就用cookie去检测数据是否合法,然后生产session,整个系统的验证全部是用session作判断条件的,这样说,不知道你是否能够明白!
public void cookie_logon()
{
if (Session["flag"] == null)
{
if (Request.Cookies["mycookie"] != null)
{
Session["flag"] = true;
Session["sessionName"] = Request.Cookies["mycookie"].Values["name"].ToString();
Session["sessionID"] = Request.Cookies["mycookie"].Values["ID"].ToString();
}
}
}我还想请教一下大家,虽然是成功了,但是很麻烦的问题是,要想像百度和CSDN这样,无论你打开哪个页面都能自动登录,如果是每个页面都加上面这段代码,那是很烦人的事情,有没有一种方法,写在一个什么地方,让全站的每个页面都能调用呢?我试了试在类中创建函数行不通啊。请大家帮一嘛,我是自学的,没有基础啊,谢了!