请教jsp登录时效问题(高手们帮帮忙啊。。)

tdgwj 2010-04-07 10:44:18
有些网站在登录时 有一个登录时效选项 可以是浏览器进程、1小时、1月、1年等
一个客户端 无论打开多少浏览器窗口 始终认为是一个用户

我想 是否可以改写浏览器向服务器发送的请求头信息中的sessionID 使一个客户端始终是同一session
再设置Cookie最大时效、session最大时效
使用户只要不清除Cookie 或者Cookie保存时间到期 服务器就一直认为是一个session

请问各位大大 这样是否可行?或者还有其他办法?
请贴出具体实现代码 小弟先谢过了!!!

(只要产生不同浏览器进程 Cookie中的SessionID就不共享了 服务器就会认为是一个新的session 这样不行啊。。
我想要的是 一个客户端 就算打开n个浏览器进程 发送的sessionID都是同一个 服务器都会认为是同一session!

...全文
281 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
justwalking 2010-04-07
  • 打赏
  • 举报
回复
你说的是cookie吧
lp19890601 2010-04-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xiayuqijava 的回复:]
登陆时可以把用户名存在COOKIE中啊,只要客户端不清除缓存和在cookie设置的有效时间内,这个cookie中的用户就一直存在,在用户退出后,这个cookie就自动删除了。再登陆时cookie就会新增一个用户
[/Quote]

這個沒錯啊!
wula0010 2010-04-07
  • 打赏
  • 举报
回复
楼上正确........
xiayuqijava 2010-04-07
  • 打赏
  • 举报
回复
登陆时可以把用户名存在COOKIE中啊,只要客户端不清除缓存和在cookie设置的有效时间内,这个cookie中的用户就一直存在,在用户退出后,这个cookie就自动删除了。再登陆时cookie就会新增一个用户
tdgwj 2010-04-07
  • 打赏
  • 举报
回复
人工置顶
tdgwj 2010-04-07
  • 打赏
  • 举报
回复
人工置顶
tdgwj 2010-04-07
  • 打赏
  • 举报
回复
大侠们 继续帮忙啊
不同浏览器进程 Cookie是不同的
咋办啊
怎么能让不同浏览器进程共享Cookie??
tdgwj 2010-04-07
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 tanwan 的回复:]
Cookie cookie = new Cookie("key","value");
然后设置有效时间
在response.addCookie(cookie);
[/Quote]
哇咔咔。。好东西。。收下了。。
嗯。。先回去试试!
tdgwj 2010-04-07
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 cklxh520 的回复:]
你的方向应该是session共享..
[/Quote]
嗯 也有人这么说过。。可啥是session共享 怎么实现呢?
拜托啦。。详细点
tdgwj 2010-04-07
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ibm_hoojo 的回复:]
CSS code

用的是cookie,当用户设置一个月不用重复登陆时。服务器端会创建一个cookie文件,保存用户的信息。
和登陆时间、以及设置登陆多久的时间。当用户下次再登陆或打开新窗口的时候,服务器会去找cookie文件
中的信息。如果没有超过时间,就用该用户的信息登陆。超过了登陆时间(1一个月),就重新登录。
前提可以创建cookie,客户端没有禁用cookie……
[/Quote]
挖。。高手。。快告诉俺怎么写Cookie
怎么从Cookie读取
要详细代码
tanwan 2010-04-07
  • 打赏
  • 举报
回复
Cookie cookie = new Cookie("key","value");
然后设置有效时间
在response.addCookie(cookie);
cklxh520 2010-04-07
  • 打赏
  • 举报
回复
你的方向应该是session共享..
tdgwj 2010-04-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 justwalking 的回复:]
你说的是cookie吧
[/Quote]
嗯 我想知道我的思路到底对不对
代码怎么实现 通过重写URL等方式 传递sessionID
而且同一台主机上每次发送的sessionID 是唯一的 无论有多少个浏览器进程!
tdgwj 2010-04-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xiayuqijava 的回复:]
登陆时可以把用户名存在COOKIE中啊,只要客户端不清除缓存和在cookie设置的有效时间内,这个cookie中的用户就一直存在,在用户退出后,这个cookie就自动删除了。再登陆时cookie就会新增一个用户
[/Quote]
感谢您的回复
代码怎么实现向Cookie写入用户名呢?
我菜鸟一只 最好有代码说明下!
另外 服务器是根据sessionID判断是否同一会话的
而不同浏览器进程间Cookie不共享 就造成了每个浏览器进程的sessionID不同
服务器就会创建多个会话了啊
怎么解决呢
guangfei1987 2010-04-07
  • 打赏
  • 举报
回复
cookie的机制是这样子的...
huisui1234 2010-04-07
  • 打赏
  • 举报
回复
恩 可以使用cookie cookie的机制本来就是这样的
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xiayuqijava 的回复:]

登陆时可以把用户名存在COOKIE中啊,只要客户端不清除缓存和在cookie设置的有效时间内,这个cookie中的用户就一直存在,在用户退出后,这个cookie就自动删除了。再登陆时cookie就会新增一个用户
[/Quote]
cookie本来就是依楼主想的这么工作的
qiuqiupeng 2010-04-07
  • 打赏
  • 举报
回复
kerberos 认证吧。


用户基于客户机程序登录的步骤:

1. 用户输入用户名和密码到客户机。
2. 客户机程序在输入的密码上运行一个单向函数(大多数为杂凑),这个成为客户机/用户的密钥。

客户机程序户认证步骤:

1. 客户机向AS发送一个明文消息,代表用户请求服务。举个例子:"用户XYZ想请求服务。"注意:既不需要向AS发送密钥,也不需要发送密码。
2. AS校验这个客户是否在它的数据库里。如果在,AS返回以下两条信息给客户:
* 消息A:用客户/用户密钥加密的客户/TGS会议密钥。
* 消息B:用TGS密钥加密的票据授权票据(包括客户ID,客户网络地址,票据有效期,客户/TGS会议密钥)。
3. 一旦客户收到消息A和B,他解密消息A得到客户/TGS会议密钥。会议密钥用在将来与TGS的通信上(注意:客户不能解密消息B,因为它是用TGS的密钥加密的)。这样的话,客户有了足够的信息向TGS证明自己的身份)。

客户服务认证步骤:

1. 当申请服务时,客户向TGS发送以下两条消息:
* 消息C:由从消息B中获取的票据授权票据和申请的服务的ID组成。
* 消息D:用客户/TGS会议密钥加密的认证(由客户ID和时间戳组成)。
2. 基于收到的消息C和D,TGS从消息C中重新获取消息B。它用TGS的密钥解密消息B。这一步使他得到"客户/TGS会议密钥"。通过使用这个密钥,TGS解密消息D(认证),而后返回给客户以下两条信息:
* 消息E:用服务器密钥加密的用户-服务器票据(包括客户ID, 客户网络地址,客户/服务器会议密钥的有效期)。
* 消息F:用客户/TGS会议密钥加密的客户/服务器会议密钥。

客户服务申请的步骤:

1. 基于从TGS收到的消息E和F,客户有足够的信息向SS认证自己。客户联系SS,并向他发出以下两条消息:
* 消息E:由先前的步骤得到(用户-服务器票据,用服务器的密钥加密)。
* 消息G:用客户/服务会议密钥加密的一个新的认证,包括客户ID,时间戳。
2. SS用它自己的密钥解密票据重新得到客户/服务器会议密钥。用这个会议密钥,SS解密得到认证,并返回以下消息给客户,确认他的身份真实,并乐于向客户提供服务:
* 消息H:在客户认证中找到时间戳,加1 ,用客户/服务器会议密钥加密。
3. 客户使用客户/服务器会议密钥解密确认函,并检查时间戳是否被正确地更新。如果是,客户可以信赖服务器,并可以向服务器发送服务请求。
4. 服务器向客户提供其所请求的服务。
hoojo 2010-04-07
  • 打赏
  • 举报
回复

用的是cookie,当用户设置一个月不用重复登陆时。服务器端会创建一个cookie文件,保存用户的信息。
和登陆时间、以及设置登陆多久的时间。当用户下次再登陆或打开新窗口的时候,服务器会去找cookie文件
中的信息。如果没有超过时间,就用该用户的信息登陆。超过了登陆时间(1一个月),就重新登录。
前提可以创建cookie,客户端没有禁用cookie……
加载更多回复(1)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧