论坛首页 Java企业应用论坛

跨域访问时Session丢失

浏览 73264 次
精华帖 (0) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-11-14  
做个认证服务器就ok
0 请登录后投票
   发表时间:2008-11-17  
1.http://www.web1357.cn/post/java_urlrewriter.html
我觉得urlrewriter能解决你的问题,后台指向的都是同一个域,地址栏怎么显示都可以.
2.我觉得持久化session到数据库也不错,至少可以提高用户体验度,不过要具体情况具体分析了.
0 请登录后投票
   发表时间:2008-11-17  
把 session 持久化到数据库,同时记下session id, 当跳转的时候传递session id就行了,当然,持久化的时候需要设置session的过期时间,
0 请登录后投票
   发表时间:2008-11-23  
前期架构的时候考虑CAS就会好些。
0 请登录后投票
   发表时间:2008-11-24  
数据库作为购物车确实是一个很好的解决办法
0 请登录后投票
   发表时间:2008-11-25  
response.setHeader("P3P","CP=CAO PSA OUR");
貌似只能对付windows下的跨域吧。自己试过确实可行的。
p3p是微软的隐私策略,通常情况下跨域iframe或者frameset默认采用的隐私策略为“中”,该级别的策略拒绝保留session。CAO PSA OUR则意味着你同意跨域保留session,但是也意味着你的网站不再安全。
0 请登录后投票
   发表时间:2008-12-19  
p3p是可以的,只是这个同步登陆涉及到客户端网速问题,所以如果登陆页面被快速刷新的话,会导致其他域的登陆信息丢失。
0 请登录后投票
   发表时间:2008-12-22  
用P3P协议吧,共享一下cookie
0 请登录后投票
   发表时间:2008-12-25  
楼主这个问题,我在多年前就已经遇到过了。

我的设计是重新设计基于数据库的session

我自己设计了Wsession.java类
get(request,key,val)
set(request,key)
keepAlive()
logout(request)
clear(request,key)


系统启动前检测系统如果支持cookie 直接取jsp本身的SESSIONID
如果不支持(我之前主要从sp做过来的),则判断有无MISC_SESSIONID,ws_sid,jid等参数过来?如果有则用其作为sid
如果无则取手机号码 加密
如果无取ip (这里应该是不研究的,不过到了这步用户量已经少得可怜,严谨的做法是每个链接都要加如jessionid 即url重写)

这样设计后,可以解决不支持cookie的问题,跨域访问会话共享的问题。你所遇到的问题迎刃而解。

还有个好处 是会话在单独得mysql数据库存放。这个数据库只放session,和用户配置不得放任何业务逻辑。这样使得业务逻辑跟会话分离。要查当前用户在干嘛,诸如谁看过,谁在访问同一个业务,轻而易举。

by the way:

本人设计的书吧就是基于此。
欢迎各位大侠来测试,提意见,同时本人也在吸收有指向的网络程序员一起做事,我暂不能付给你工资,但一定是件有意义的事情。
http://5is8.vicp.net (请不要hack我。发现bug请发邮件给我netzend@gmail.com)


0 请登录后投票
   发表时间:2009-01-03  
为什么不把一套网站国际化一下用,反而每个国家要独享一个域名,这个设计也让我不解
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics