大家都知道,当用户登录后,需要把用户信息保存到session中,便于确保用户操作权限,在其它页面通过检查session是否为null可以知道用户是否登录。
我现在的问题是,session在一个浏览器中有效,如果用户另外打开一个IE访问网页时,该页面中的session为null,则用户本来已经登录了,但是在新打开的浏览器中需要重新登录,这样不好吧!
我看现在大多网站登录后,在新打开的浏览器中显示用户已登录,他们是怎么处理的呢??
难道是获取用户登录后保存在session中的信息,可是不知道怎么获取到??
请大侠帮忙,本人不胜感激!!在线等你答复~
我现在的问题是,session在一个浏览器中有效,如果用户另外打开一个IE访问网页时,该页面中的session为null,则用户本来已经登录了,但是在新打开的浏览器中需要重新登录,这样不好吧!
我看现在大多网站登录后,在新打开的浏览器中显示用户已登录,他们是怎么处理的呢??
难道是获取用户登录后保存在session中的信息,可是不知道怎么获取到??
请大侠帮忙,本人不胜感激!!在线等你答复~
在Session_Start事件下定义一个Session如下:
protected void Session_Start(Object sender, EventArgs e)
{
Application.Lock();
Session["logined"]=false;
Session["userName"]=null;
Application.UnLock(); }然后在每个页面里的page_load事件中都对Session["logined"]进行检查...
当然如果登录成功,则要将Session["logined"]设为True...
楼主尝试下看...
如果在数据库保存ip的话,我试过了,虽然可以实现在打开不同ie窗口时从数据库中查到该ip的用户已登录,但这样又出现一个问题,局域网内部的电脑都是一个ip,这样的话不用登录的范围扩大了,ip地址一样的机器都不用在登录了,保存ip是不行的!
到底怎么处理呢?
我是想用一种方法实现用户在一个浏览器中登录后的信息,在打开新的浏览器访问网页时仍然有效,这样我的网页自动显示该用户已登录。
似乎cookie可以,但我也没有用过,一起学习下...
呵呵...
最后强调cookie是域名相关的,http://www.mysite.com,http://localhost可能都指向127.0.0.1但是他们是两个不同的域名,其中一个的cookie用另外一个域名访问站点时并不会发送,注意这一点。
还是这问题太简单了,就我不知道怎么处理呀?
因为没有经验,在处理问题时老是走弯路,我刚开始是在用户登录后,把用户ip及登录状态记录到数据库,这样,在打开新浏览器访问时虽然不能用session,但是我可以从数据库中查到该用户ip已登录过了,这样能够基本实现。
但发现一台机器不能用ip地址唯一标识,这样处理将出现局域网内部所有机器访问时将都显示某一用户的登录名,显然是个大BUG!
baidu实在是查不到这方面的资料,所以在这里求助大家!
看来cookie用起来还是挺方便的,不防考虑放弃session了。
难道哪些网站都是用的cookie吗?
没想到session还有这种限制。
1、本窗口
2、所有通过点击本窗口链接打开的新窗口
3、在本窗口通过Ctrl+N新建的窗口
所有登陆之后,另外单独打开的IE里,session是不生效的
Maxthon等多tab浏览器里,session的作用范围是整个浏览器。你可以尝试看看163的通行证就知道了,登陆之后,再开的ie是不记录session的